在Python中编写xlsx文件

我正在尝试在Iron Python(v2.7.5)中创build一个xlsx文件。
我已经安装了最新版本的openpyxl(v2.2.1)并testing了一个简单的例子,几乎从字面上取自openpyxl文档:

from openpyxl import Workbook wb = Workbook() wb.save('empty.xlsx') 

我正在按照预期在CPython中工作(创build一个空的工作簿),但在Iron Python中,它只是抛出exception。

  File "test_openpyxl.py", line 15, in <module> File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\openpyxl\workbook\workbook.py", line 298, in save File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\openpyxl\writer\excel.py", line 196, in save_workbook File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\openpyxl\writer\excel.py", line 179, in save File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\openpyxl\writer\excel.py", line 67, in write_data File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\openpyxl\workbook\properties.py", line 103, in write_properties File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\openpyxl\utils\datetime.py", line 33, in datetime_to_W3CDTF 

TypeError:预期的date时间,得到Object_1 $ 1

我猜这个错误是由一些.NET对象意外popup造成的,但是我被Object_1弄糊涂了,所以找不到它是什么对象。

我也尝试了旧版本的软件包,只有v1.8.0我能得到一些结果:

  • openpyxl-2.1.0运行没有例外(只有一个弃用警告),但Excel抱怨在创build的文件中损坏的内容。 enter code here
  • openpyxl-2.0.5抛出另一个exception( 这里已经报道 )
  • openpyxl-1.8.6抛出“ImportError:无法从Openpyxl.styles导入PatternFill”
  • openpyxl-1.8.0会打印出一个警告( UserWarning: Unable to import 'xml.etree.cElementree'. Falling back on 'xml.etree.Elementree') ,这是经过一番考虑后才相当合理的。 所以这可能是唯一可行的版本。

在进一步挖掘之前,我想问问社区:1.有没有人设法使用IronPyth下的openpyxl 2.是否还有其他库可以工作,并且可以创build适度格式化的xlsx文件?

我想最简单的答案是你不能在IronPython中使用openpyxl。 我们使用描述符来打字,IronPython似乎与他们斗争。

我们已经成功地使用了ClosedXML (一个相当活跃和受支持的项目),用于从.NET读取和写入格式化的XLSX数据。 我们的主要用例是以C#为中心,但有时我们也使用IronPython。

该项目具有NuGet包,并build立在微软官方DocumentFormat.OpenXml SDK上,同时使用起来更为简单。

我不能评论openpyxl,因为我没有使用它,但是你发现的错误报告以及IronPython中Ctypes的一般情况使得这种技术组合很可能无法工作(现在)。