将图表导出到不同的路径 win32Com

Export Chart to a different Path win32Com

问题

参考下面的代码,每当我运行这段代码时,它会找到所有表格的图表并导出为图像。但是,当涉及到 chartObject.Chart.Export("chart" + str(i) + ".png") 时,它总是导出到 window.

中的文档文件夹

问题

有没有办法声明导出路径? (P.s) 我已尝试阅读文档,但没有关于我的问题的信息。谢谢。

代码

1 件需要注意的事情:这段代码在 2018 年的 Whosebug 问题中得到了回答。因此,我不拥有它的功劳。但我正在做类似的事情。谢谢

from win32com.client import Dispatch

app = Dispatch("Excel.Application")
workbook_file_name = 'Programmes.xlsx'
workbook = app.Workbooks.Open(Filename=workbook_file_name)

# WARNING: The following line will cause the script to discard any unsaved changes in your workbook
app.DisplayAlerts = False

i = 1
for sheet in workbook.Worksheets:
    for chartObject in sheet.ChartObjects():
        # print(sheet.Name + ':' + chartObject.Name)
        chartObject.Chart.Export("chart" + str(i) + ".png")
        i += 1

workbook.Close(SaveChanges=False, Filename=workbook_file_name)

解决方案

大家好,抱歉我发布了我的答案。但经过反复试验,我找到了解决方案

chartObject.Chart.Export("chart" + str(i) + ".png")

只需添加路径和文件名即可。示例:

chartObject.Chart.Export(os.getcwd() + "/chart" + str(i) + ".png")

对于那些不确定什么是 os.getcwd() 的人,它基本上是指您的代码文件所在的当前目录。

注意: 永远不要使用 os.path.join() 因为你会得到一个错误,因此可以安全地如上所述使用。