2016-11-07 69 views
-2

我有一个excel 2010工作簿。 我想从中提取一个特定的表单(名称)并将其保存为csv文件。如何从外部工具访问Excel 2010工作表?

的主要要求是从外部程序这样做(编程语言不是关键..我可以使用Perl/Python的/ VB,无论工作... ...)

我浏览网页(google一下),但找不到任何文件如何做到这一点。

我确实发现Excel 2010中实际上是一个拉链,但寻找到它,我无法找到张的名字....

有没有人有这样的任务的经验吗?

+0

问题要求我们推荐或找到一本书,工具,软件库,教程或其他非本地资源,因为它们倾向于吸引自以为是的答案和垃圾邮件,所以不适合堆栈溢出。相反,[描述问题](http://meta.stackoverflow.com/questions/254393)以及迄今为止已经做了什么来解决它。 – dgw

+0

@dgw:我defintaly知道堆栈溢出的目的...但是...我想我实际上描述了这个问题...我不能按名称访问该表作为Excel 2010作为zip,不列出它们...' – NirMH

+0

然后添加你已经试过的问题。现在它看起来像一个给我的代码问题。添加你的代码,你已经达到的目标以及你被卡住的地方,然后你会得到答案。否则你的问题很可能会被关闭。 – dgw

回答

1

你用perl标记了问题。所以,你可以使用perl来解决这个问题,只需从CPAN存储库安装一些已经开发的perl模块即可。检查http://metacpan.org

这是很容易的任务,以谷歌他们,但如果你无法找到需要的人,这里有:

  • Spreadsheet::ParseExcel - 读取用perl Excel文件的基本模块。你需要熟悉这一点 - 你将学习如何处理工作簿,工作表,单元格等的基本“逻辑”。
  • Spreadsheet::XLSX - 像上面一样,但可以读取2007+ XLSX文件类型。 (你的情况)。

使用上述模块,您将能够读取您的XLSX文件。对于第二部分,(保存为csv) - 再次存在已经开发和良好测试模块,例如:

  • Text::CSV_XS - 文本:: CSV_XS提供逗号分隔值的组合物和分解的设施。

对于这样简单的问题(使用上述模块),真实世界的perl脚本通常只有几行(10-15行)。

但是,如果你想处理边缘情况,例如字符编码转换等 - 也许你也需要使用其他几个模块。