在各种情况下,都需要将 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 到图像的转换
以下是在 Python 中将 Excel 文件转换为图像格式,即 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 的更多信息。如果您有任何问题或疑问,请随时通过我们的 论坛 告诉我们。