簡體   English   中英

在 Python 中輸出 .xls 文件

[英]Outputting A .xls File In Python

我一直在自學 Python 來自動化我們的一些工作流程。 到目前為止,從 Excel 文件(.xls、.xlsx)中讀取數據已經很不錯了。

目前我遇到了一些障礙。 雖然我可以很好地輸出 .xlsx 文件,但我們必須用於主要工作任務的軟件系統只能將 .xls 文件作為輸入 - 它無法處理 .xlsx 文件,供應商認為沒有理由添加 .xlsx 支持在可預見的未來的任何時候。

當我嘗試使用 Pandas 或 OpenPyXl 輸出 .xls 文件並在 Excel 中打開該文件時,我收到一條警告,指出文件格式和擴展名不匹配,這讓我認為嘗試打開此文件使用我們的軟件可能會導致一些非常意外的后果(因為它實際上是一個 .xlsx 文件,只是沒有這樣命名

我試圖在谷歌上搜索如何解決這一切,但我能找到的只是關於如何將 .xls 文件轉換為 .xlsx 文件的指南(這幾乎與我需要的相反)。 所以我想知道是否有人可以幫助我了解這是否可以實現,如果可以,如何實現。

非常感謝您的寶貴時間

pandas.DataFrame.to_excel文檔下,您應該注意到一個名為engine的參數,它指出:

引擎str ,可選

編寫要使用的引擎, openpyxlxlsxwriter 您還可以通過選項io.excel.xlsx.writerio.excel.xls.writerio.excel.xlsm.writer

它沒有說明的是engine參數是根據您的文件擴展名自動選擇的——因此,很容易修復:

import pandas as pd

df = pd.DataFrame({"data": [1, 2, 3]})
df.to_excel("file.xls") # Notice desired file extension.

這將自動使用xlwt引擎,因此請確保通過pip install xlwt

我終於有了答案! 我安裝了 libreoffice 並在 Windows 的命令行中使用以下內容:

"C:\Program Files\LibreOffice\program\soffice.exe" --headless --convert-to xlsx test2.xls

目前正在嘗試使用子流程來自動執行此操作。

Felipe 是對的,文件擴展名將設置引擎參數。

所以基本上它說的是 Pandas 不再支持舊的 Excel 格式“.xls”擴展名。 因此,如果您使用“.xlsx”擴展名指定輸出電子表格,警告消息就會消失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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