2015-04-06 118 views
3

我想在Iron Python(v2.7.5)中創建一個xlsx文件。
我已經安裝了最新版本的openpyxl(V2.2.1)和測試簡約爲例,幾乎從字面上openpyxl資料爲準:在Iron Python中編寫xlsx文件

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

我正在按預期在CPython的(創建一個空的工作簿),但在Iron Python中,它只是拋出異常。

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 

類型錯誤:預期的日期時間,得到了Object_1 $ 1

我猜的錯誤是由意外彈出一些.NET對象造成的,但我通過Object_1東西迷惑,所以無法查找對象是。

我自己也嘗試舊版本的軟件包,只有用v1.8.0我能得到一些結果:

  • openpyxl-2.1.0運行沒有異常(只產生警告)但Excel抱怨創建的文件中存在損壞的內容。 enter code here
  • openpyxl-2.0.5拋出另一個異常(already reported here
  • openpyxl-1.8.6拋出 「導入錯誤:無法從openpyxl.styles導入PatternFill」
  • openpyxl-1.8.0打印出警告(UserWarning: Unable to import 'xml.etree.cElementree'. Falling back on 'xml.etree.Elementree'),這是經過一番思想是相當合理,這可能是唯一可行的版本

在我進一步挖掘,我想問問社區:。 1.有沒有人設法利用openpyxl IronPyth 2下有沒有其他的工作的庫,並且可以 創建中等格式的xlsx文件?

+0

我能夠安裝1.8.1,並使其與上述警告一起工作,但無法安裝1.8.2。所以我會推薦使用1.8.1 – gbronner

回答

2

我認爲最簡單的答案就是你不能在IronPython中使用openpyxl。我們使用描述符進行打字,IronPython似乎與他們鬥爭。

1

我們已經成功地使用ClosedXML - 一個相當活躍和支持的項目 - 用於從.NET讀取和寫入格式化的XLSX數據。我們的主要用例是以C#爲中心的,但有時我們也使用了IronPython。

該項目有NuGet packages,它建立在Microsoft官方DocumentFormat.OpenXml SDK的基礎上,同時使用起來更加簡單。

我不能評論openpyxl,因爲我沒有使用它,但是您發現的錯誤報告以及IronPython中Ctypes的一般情況使得這種技術組合很可能無法工作(現在)。