使用Python将 Excel 中的图表、形状和其他元素导出为图片

目录

[为什么将 Excel 中的图表、形状和其他元素导出为图片?](#为什么将 Excel 中的图表、形状和其他元素导出为图片?)

工具与设置

[Python 将 Excel 图表导出为图片](#Python 将 Excel 图表导出为图片)

将图表导出为图片

将图表工作表导出为图片

[Python 将 Excel 中的形状和其他元素导出为图片](#Python 将 Excel 中的形状和其他元素导出为图片)


微软 Excel 是一个功能强大的数据分析和可视化工具,能够帮助用户创建各种图表、形状以及其他交互元素。在某些情况下,我们需要将这些可视化元素转换为图片,以便在演示文稿、报告或其他文档中使用。手动导出这些元素会比较繁琐,尤其是在处理多个文件时。本文将探讨如何使用 Python 自动化地从 Excel 中提取图表、形状和其他元素,并将其保存为图片,主要涵盖内容如下:

  • 为什么将 Excel 中的图表、形状和其他元素导出为图片?
  • 工具与设置
  • Python 将 Excel 中的图表导出为图片
    • 将图表导出为图片
    • 将图表工作表导出为图片
  • Python 将 Excel 中的形状和其他元素导出为图片

为什么将 Excel 中的图表、形状和其他元素导出为图片?

将 Excel 中的图表、形状和其他元素转换为图片可以带来很多好处,例如:

  • 便于分享:图片可以轻松嵌入电子邮件、演示文稿或其他文档中,无需接收者安装 Excel。
  • 一致的格式:与可能在不同设备上呈现不同结果的 Excel 文件相比,图片在各个环境中保持相同的外观。
  • 性能提升:静态图片的加载速度通常快于交互元素。
  • 增强安全性:图片格式可以防止他人访问或修改底层数据,保护信息安全。

工具与设置

要在 Python 中将 Excel 中的图表、形状及其他元素保存为图片,本文将使用 Spire.XLS for Python。该库支持在Python中创建、操作和转换Excel文件,同时无需依赖微软Office 或其他软件。

安装Spire.XLS

Spire.XLS 提供了两个版本,可以根据需求选择合适的版本:

  • 社区版 :免费使用,但每个 .xls 文件限制为 200 行和 5 个工作表(.xlsx 文件没有此限制)。
    安装命令:

    python 复制代码
    pip install spire.xls.free
  • 商业版 :功能完备,但会添加水印。可以在 [这里] 申请免费的测试许可证。
    安装命令:

    python 复制代码
    pip install spire.xls

    安装完成后,即可在Python应用程序中调用该库的API。

Python 将 Excel 图表导出为图片

Excel 文件可以包含嵌入的图表(位于工作表内的图表)或图表工作表(独立图表)。以下是使用 Python 导出这两者为图片的方法。

将图表导出为图片

要将 Excel 文件中嵌入的图表保存或导出为图片,参考以下步骤:

  1. 初始化 Workbook 类的对象,并使用 LoadFromFile() 方法加载 Excel 文件。
  2. 通过Workbook.Worksheets集合遍历工作簿中的工作表。
  3. 通过Worksheet.Charts集合遍历当前工作表中的图表。
  4. 使用 Chart.SaveToImage() 方法将每个图表保存为图片对象。
  5. 将图片对象保存为指定格式的图片文件(例如,PNG、JPEG)。

实现代码

python 复制代码
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中的图表工作表(独立图表)转换为图片,可以参考以下步骤:

  1. 初始化 Workbook 类的对象,并使用 LoadFromFile() 方法加载 Excel 文件。
  2. 通过Workbook.Chartsheets集合遍历 Workbook 对象中的图表工作表。
  3. 使用 Workbook 对象的 SaveChartAsImage() 方法将每个图表工作表保存为图片对象。
  4. 将图片对象保存为指定格式的图片文件(例如,PNG、JPEG)。

实现代码

python 复制代码
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 元素,如几何形状、形状组合、文本框、复选框、列表框、组合框和单选按钮等,导出为图片。具体步骤如下:

  1. 初始化 Workbook 类的对象,并使用 LoadFromFile() 方法加载 Excel 文件。
  2. 遍历工作簿中的工作表。
  3. 遍历当前工作表中的指定形状或元素类型。
  4. 使用 SaveToImage() 方法将每个形状或元素保存为图片对象。
  5. 将图片对象保存为指定格式的图片文件(例如,PNG、JPEG)。

实现代码

以下代码展示了如何将Excel工作表中的几何形状导出为图片:

python 复制代码
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 文件中的文本框保存为图片:

python 复制代码
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中的图表、形状以及其他元素导出为图片的相关内容。

感谢阅读!

相关推荐
博观而约取38 分钟前
Django ORM 1. 创建模型(Model)
数据库·python·django
Prodigy_kyw1 小时前
VBA初学3----实战(VBA实现Excel转csv)
excel·vba·csv
精灵vector2 小时前
构建专家级SQL Agent交互
python·aigc·ai编程
Zonda要好好学习2 小时前
Python入门Day2
开发语言·python
Vertira2 小时前
pdf 合并 python实现(已解决)
前端·python·pdf
太凉2 小时前
Python之 sorted() 函数的基本语法
python
项目題供诗3 小时前
黑马python(二十四)
开发语言·python
晓13133 小时前
OpenCV篇——项目(二)OCR文档扫描
人工智能·python·opencv·pycharm·ocr
是小王同学啊~3 小时前
(LangChain)RAG系统链路向量检索器之Retrievers(五)
python·算法·langchain
AIGC包拥它3 小时前
提示技术系列——链式提示
人工智能·python·langchain·prompt