[英]Writing xlsx files in Iron Python
我正在嘗試在 Iron Python (v2.7.5) 中創建一個 xlsx 文件。
我已經安裝了最新版本的 openpyxl (v2.2.1) 並測試了一個簡約的例子,幾乎完全取自 openpyxl 文檔:
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 我才能得到一些結果:
enter code here
UserWarning: Unable to import 'xml.etree.cElementree'. Falling back on 'xml.etree.Elementree')
,經過一番思考,這是非常合理的。 所以這可能是唯一有效的版本。 在我深入挖掘之前,我想問一下社區: 1. 有沒有人設法在 IronPyth 2 下使用openpyxl
。是否還有其他可用的庫並且可以創建中等格式的xlsx
文件?
我認為簡短的回答是你不能在 IronPython 中使用 openpyxl。 我們使用描述符進行打字,而 IronPython 似乎與它們斗爭。
我們已經成功地使用了ClosedXML——一個相當活躍和受支持的項目——從 .NET 讀取和寫入格式化的 XLSX 數據。 我們的主要用例以 C# 為中心,但有時我們也從 IronPython 使用它。
該項目具有NuGet 包,並基於 Microsoft 的官方 DocumentFormat.OpenXml SDK 構建,同時顯着更易於使用。
我無法對 openpyxl 發表評論,因為我還沒有使用過它,但是您發現的錯誤報告以及 IronPython 中 Ctypes 的一般情況使得這種技術組合很可能不會奏效(現在)。
嘗試使用 clr 模塊並參考 microsoft Excel "import clr" clr.AddReferenceByName('Microsoft.Office.Interop.Excel')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.