我怎样才能编写简单的数据到一个复杂的.xlsm文件而不破坏它?

我有一个非常复杂的.xlsm格式的Excel工作簿,macros,命名范围,所有的钟声和哨声。 我需要在最简单的意义上将CSV文件的内容转换为工作表中的工作表(已存在):第1行第1列转到第A1行,第1列转到第A2单元格,以此类推。 你可以使用简单的导入或复制粘贴在Excel中完成这个工作,但是我需要以编程的方式来完成。

我需要使用Linux上免费提供的软件(实际上是CentOS 5,这进一步限制了我的select,但现在我们不用担心这个问题)。 理想情况下,我会使用一个ruby或Python库,但我现在对任何事情都是开放的。

我不太了解Excel,但是当我尝试使用openpyxl (对于我来说简单的工作簿很好)来实现这一点时,我看到了一些输出:

 /opt/python-assessment/lib/python2.7/site-packages/openpyxl/reader/worksheet.py:322: UserWarning: Unknown extension is not supported and will be removed warn(msg) /opt/python-assessment/lib/python2.7/site-packages/openpyxl/reader/worksheet.py:322: UserWarning: Data Validation extension is not supported and will be removed warn(msg) /opt/python-assessment/lib/python2.7/site-packages/openpyxl/workbook/names/named_range.py:125: UserWarning: Discarded range with reserved name warnings.warn("Discarded range with reserved name") 

我不知道这是什么意思,但结果是,即使我没有做任何改变, openpyxl在我尝试编写openpyxl工作簿。 我已经尝试了以下方法:

  • Python中的openpyxl :见上文,似乎工作(带有警告),但生成的文件被破坏。
  • rubyruby:这个图书馆能不能写, 至less,它似乎主要是面向阅读。
  • ruby spreadsheet :试图打开文件(可能根本不支持.xlsm格式?)时出现此错误: /usr/lib/ruby/gems/1.9.2/gems/ruby-ole-1.2.11.8/lib/ole/storage/base.rb:378:in 'validate!': OLE2 signature is invalid (Ole::Storage::FormatError)
  • 手动解压缩和文件的hackery:架构是很复杂,以至于不明白如何实现我的目标。 我仍然认为这可能是最好的select,但是我需要find一个更好的参考,或花更多的时间来抓我的头来取得进展。

在这一点上,我会追求任何看起来很有希望的方法。

我知道OP是要求在Linux上运行的解决scheme,但是我在Windows PC上遇到了类似的问题。

努力得到它与openpyxl,xlutils之类的工作。 我偶然发现了一个使用COM接口操作文件的build议(使用win32com.client)。

所以对于任何有幸能够在windows上工作的人,请看下面的链接开始:

http://pythonexcels.com/python-excel-mini-cookbook/