簡體   English   中英

用 Iron Python 編寫 xlsx 文件

[英]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 我才能得到一些結果:

  • openpyxl-2.1.0 運行無異常(僅帶有棄用警告),但 Excel 會抱怨創建的文件中的損壞內容。 enter code here
  • openpyxl-2.0.5 拋出另一個異常( 已在此處報告
  • 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. 有沒有人設法在 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM