You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python加载Excel仪表板失败,graph1工作表折线图为空,如何正确加载图表为图像

问题根因

pandas.read_excel 仅支持读取Excel工作表内的单元格表格数据,无法识别嵌入的图表对象,因此读取仅存放图表的graph1工作表时返回空值属于正常现象。若要将Excel中的图表导出为图像文件,可参考以下可行方案:


方案1:xlwings(适配Windows/macOS,要求本地安装Excel/WPS/LibreOffice)

该方案导出的图表效果和Excel内预览完全一致,是最常用的方案,示例代码如下:

import xlwings as xw

# 后台启动Office进程,不弹出可视化窗口
with xw.App(visible=False, add_book=False) as app:
    # 打开目标Excel文件,替换为你的文件路径
    workbook = app.books.open("example.xlsx")
    # 定位到存放图表的graph1工作表
    worksheet = workbook.sheets["graph1"]
    # 遍历工作表内所有图表逐一导出
    for index, chart in enumerate(worksheet.charts):
        # 自定义导出路径和文件名
        chart.to_png(f"./export/chart_{index}.png")
    workbook.close()

方案2:win32com(仅Windows环境,要求本地安装Excel)

import win32com.client as win32
from PIL import ImageGrab
import os

excel = win32.Dispatch("Excel.Application")
excel.Visible = False
# 打开文件需传入绝对路径
workbook = excel.Workbooks.Open(os.path.abspath("example.xlsx"))
worksheet = workbook.Worksheets("graph1")

for index, chart in enumerate(worksheet.ChartObjects()):
    chart.Copy()
    # 从剪贴板获取图表图像并保存
    img = ImageGrab.grabclipboard()
    img.save(f"./export/chart_{index}.png")

workbook.Close(SaveChanges=False)
excel.Quit()

方案3:无GUI Linux环境方案

无需启动可视化Office界面,调用LibreOffice命令行直接将指定工作表转为图片:

libreoffice --headless --convert-to png --outdir ./export --sheet "graph1" example.xlsx

导出后如果存在多余空白区域,可通过PIL等图像处理库裁剪得到仅含图表的图像。


注意事项

  • 不要尝试用pandas、openpyxl的常规单元格读取接口获取图表,这类工具仅处理单元格结构化数据,不解析嵌入的图像/图表对象
  • 导出前请确认图表所在工作表、图表本身未设置隐藏属性,否则会导致导出失败

内容的提问来源于stack exchange,提问作者Shivam Anand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 12:45:04