在各種情況下,需要將 Excel 電子表格嵌入到 Web 或桌面應用程序中。在這種情況下,解決方案之一是將 Excel 工作表轉換為圖像格式。在本文中,您將學習如何在 Python 中將 Excel XLSX 或 XLS 轉換為 PNG、JPEG、SVG 或其他圖像。
Python Excel 到圖像轉換器 API
為了將 Excel 的 XLSX 或 XLS 文件轉換為圖像格式,我們將使用 Aspose.Cells for Python via Java。它是一個電子表格操作 API,可讓您創建、修改或轉換 Excel 文件。您可以使用以下命令安裝 API。
pip install aspose-cells
Aspose.Cells for Python via Java 支持將 Excel 文件轉換為以下圖像格式:
Python Excel 到圖像的轉換
以下是將 Excel 文件轉換為 Python 中的圖像格式(即 PNG、JPEG 等)的步驟。
- 使用 Workbook 類加載 Excel 文件。
- 創建 ImageOrPrintOptions 類的實例並指定輸出圖像格式。
- 使用 Workbook.getWorksheets().get(index) 方法訪問要轉換的工作表。
- 創建一個 SheetRender 對象並使用 Worksheet 和 ImageOrPrintOptions 對像對其進行初始化。
- 使用 SheetRender.toImage(pageIndex, fileName) 方法將 Excel 工作表的每一頁保存為圖像。
以下代碼示例顯示如何將 Excel 工作表轉換為 PNG 圖像。
# 加載 Excel 工作簿
workbook = Workbook("Book1.xlsx")
# 創建圖像選項
imgOptions = ImageOrPrintOptions()
imgOptions.setSaveFormat(SaveFormat.SVG)
# 加載要渲染的工作表
sheet = workbook.getWorksheets().get(0)
# 創建圖紙渲染對象
sr = SheetRender(sheet, imgOptions)
# 將工作表轉換為 PNG 圖像
for j in range(0, sr.getPageCount()):
sr.toImage(j, "WorksheetToImage-out%s" %(j) + ".png")
在 Python 中將 Excel 轉換為 SVG 圖像
以下是在 Python 中將 Excel 文件轉換為 SVG 的步驟。
- 使用 Workbook 類加載 Excel 文件。
- 創建 ImageOrPrintOptions 類的實例並指定輸出圖像格式。
- 使用 Workbook.getWorksheets().getCount() 方法循環遍歷 Excel 文件中的工作表。
- 在每次迭代中,執行以下操作:
- 創建一個 SheetRender 對象並使用 Worksheet 和 ImageOrPrintOptions 對像對其進行初始化。
- 使用 SheetRender.toImage(pageIndex, fileName) 方法將 Excel 工作表的每一頁保存為 SVG。
以下代碼示例顯示瞭如何在 Python 中將 Excel 轉換為 SVG。
# 加載 Excel 工作簿
workbook = Workbook("Book1.xlsx")
# 創建圖像選項
imgOptions = ImageOrPrintOptions()
imgOptions.setSaveFormat(SaveFormat.SVG)
# 獲取紙張計數
sheetCount = workbook.getWorksheets().getCount()
# 遍歷床單
for i in range(0, sheetCount):
sheet = workbook.getWorksheets().get(i)
# 將每張紙轉換為 SVG
sr = SheetRender(sheet, imgOptions)
for j in range(0, sr.getPageCount()):
sr.toImage(j, sheet.getName() + "%s" % j + "_out.svg")
獲取免費的 API 許可證
您可以通過申請 免費臨時許可證 來使用沒有評估限制的 API。
結論
在本文中,您學習瞭如何在 Python 中將 Excel 文件轉換為圖像格式。分步指南和代碼示例演示瞭如何將 Excel 工作簿中的工作表轉換為 PNG 和 SVG 格式。您可以使用 文檔 探索有關 Python 電子表格 API 的更多信息。如果您有任何問題或疑問,請隨時通過我們的 論壇 告訴我們。