微软 excel 是一个功能强大的数据分析和可视化工具,能够帮助用户创建各种图表、形状以及其他交互元素。在某些情况下,我们需要将这些可视化元素转换为图片,以便在演示文稿、报告或其他文档中使用。手动导出这些元素会比较繁琐,尤其是在处理多个文件时。本文将探讨如何使用 python 自动化地从 excel 中提取图表、形状和其他元素,并将其保存为图片,主要涵盖内容如下:
为什么将 excel 中的图表、形状和其他元素导出为图片?
将 excel 中的图表、形状和其他元素转换为图片可以带来很多好处,例如:
- 便于分享:图片可以轻松嵌入电子邮件、演示文稿或其他文档中,无需接收者安装 excel。
- 一致的格式:与可能在不同设备上呈现不同结果的 excel 文件相比,图片在各个环境中保持相同的外观。
- 性能提升:静态图片的加载速度通常快于交互元素。
- 增强安全性:图片格式可以防止他人访问或修改底层数据,保护信息安全。
工具与设置
要在 python 中将 excel 中的图表、形状及其他元素保存为图片,本文将使用 spire.xls for python。该库支持在python中创建、操作和转换excel文件,同时无需依赖微软office 或其他软件。
安装spire.xls
spire.xls 提供了两个版本,可以根据需求选择合适的版本:
社区版:免费使用,但每个 .xls 文件限制为 200 行和 5 个工作表(.xlsx 文件没有此限制)。
安装命令:
pip install spire.xls.free
商业版:功能完备,但会添加水印。
安装命令:
pip install spire.xls
安装完成后,即可在python应用程序中调用该库的api。
python 将 excel 图表导出为图片
excel 文件可以包含嵌入的图表(位于工作表内的图表)或图表工作表(独立图表)。以下是使用 python 导出这两者为图片的方法。
将图表导出为图片
要将 excel 文件中嵌入的图表保存或导出为图片,参考以下步骤:
- 初始化 workbook 类的对象,并使用 loadfromfile() 方法加载 excel 文件。
- 通过workbook.worksheets集合遍历工作簿中的工作表。
- 通过worksheet.charts集合遍历当前工作表中的图表。
- 使用 chart.savetoimage() 方法将每个图表保存为图片对象。
- 将图片对象保存为指定格式的图片文件(例如,png、jpeg)。
实现代码
from spire.xls import * def save_charts_as_images(excel_file, output_directory): """ 将指定的 excel 文件中的所有图表导出为图片,并保存到指定的输出目录。 参数: excel_file (str): 包含图表的 excel 文件路径。 output_directory (str): 图片保存的目标目录路径。 """ workbook = workbook() workbook.loadfromfile(excel_file) for sheet_index in range(workbook.worksheets.count): sheet = workbook.worksheets[sheet_index] for i, chart in enumerate(sheet.charts): image = chart.savetoimage() image_path = f"{output_directory}/{sheet.name}_图表_{i}.png" image.save(image_path) workbook.dispose() # 用法示例 save_charts_as_images("示例.xlsx", "输出目录")
将图表工作表导出为图片
如果需要将excel中的图表工作表(独立图表)转换为图片,可以参考以下步骤:
- 初始化 workbook 类的对象,并使用 loadfromfile() 方法加载 excel 文件。
- 通过workbook.chartsheets集合遍历 workbook 对象中的图表工作表。
- 使用 workbook 对象的 savechartasimage() 方法将每个图表工作表保存为图片对象。
- 将图片对象保存为指定格式的图片文件(例如,png、jpeg)。
实现代码
from spire.xls import * def save_chart_sheets_as_images(excel_file, output_directory): """ 将指定的 excel 文件中的所有图表工作表导出为图片,并保存到指定的输出目录。 参数: excel_file (str): 包含图表工作表的 excel 文件路径。 output_directory (str): 图片保存的目标目录路径。 """ workbook = workbook() workbook.loadfromfile(excel_file) for i, chart_sheet in enumerate(workbook.chartsheets): image = workbook.savechartasimage(chart_sheet) image_path = f"{output_directory}/图表工作表_{i}.png" image.save(image_path) workbook.dispose() # 用法示例 save_chart_sheets_as_images("示例.xlsx", "输出目录")
python 将 excel 中的形状和其他元素导出为图片
除了图片以外,你还可以将多种 excel 元素,如几何形状、形状组合、文本框、复选框、列表框、组合框和单选按钮等,导出为图片。具体步骤如下:
- 初始化 workbook 类的对象,并使用 loadfromfile() 方法加载 excel 文件。
- 遍历工作簿中的工作表。
- 遍历当前工作表中的指定形状或元素类型。
- 使用 savetoimage() 方法将每个形状或元素保存为图片对象。
- 将图片对象保存为指定格式的图片文件(例如,png、jpeg)。
实现代码
以下代码展示了如何将excel工作表中的几何形状导出为图片:
from spire.xls import * def save_geometric_shapes_as_images(excel_file, output_directory): """ 将指定的 excel 文件中的所有几何形状导出为图片,并保存到指定的输出目录。 参数: excel_file (str): 包含几何形状的 excel 文件路径。 output_directory (str): 图片保存的目标目录路径。 """ workbook = workbook() workbook.loadfromfile(excel_file) for sheet_index in range(workbook.worksheets.count): sheet = workbook.worksheets[sheet_index] for i, shape in enumerate(sheet.prstgeomshapes): image = shape.savetoimage() image_path = f"{output_directory}/{sheet.name}_几何形状_{i}.png" image.save(image_path) workbook.dispose() # 用法示例 save_geometric_shapes_as_images("示例.xlsx", "输出目录")
以下代码展示了如何将excel 文件中的文本框保存为图片:
from spire.xls import * def save_textboxes_as_images(excel_file, output_directory): """ 将指定的 excel 文件中的所有文本框导出为图片,并保存到指定的输出目录。 参数: excel_file (str): 包含文本框的 excel 文件路径。 output_directory (str): 图片保存的目标目录路径。 """ workbook = workbook() workbook.loadfromfile(excel_file) for sheet_index in range(workbook.worksheets.count): sheet = workbook.worksheets[sheet_index] for i, shape in enumerate(sheet.textboxes): image = shape.savetoimage() image_path = f"{output_directory}/{sheet.name}_文本框_{i}.png" image.save(image_path) workbook.dispose() # 用法示例 save_textboxes_as_images("示例.xlsx", "输出目录")
到此这篇关于python实现将excel中图表形状等内容导出为图片的文章就介绍到这了,更多相关python excel内容导出为图片内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论