将图表导出到其他路径win32Com

2024-09-29 21:53:47 发布

您现在位置:Python中文网/ 问答频道 /正文

问题

参考下面的代码,每当我运行这段代码时,它都会找到所有工作表的图表,并作为图像导出。然而,当涉及到chartObject.Chart.Export("chart" + str(i) + ".png")时,它总是导出到窗口中的文档文件夹

问题

是否有方法声明要导出的路径(另外,我已经阅读了文档,但是没有关于我的问题的信息。谢谢

代码

需要注意的一点是:这段代码早在2018年就在stackoverflow问题中得到了回答。因此,我不拥有这段代码的信用。但我正在做类似的事情。谢谢

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)

Tags: 代码nameinapppngchartexportfilename
1条回答
网友
1楼 · 发布于 2024-09-29 21:53:47

解决方案

嘿,伙计们,很抱歉我发布了我的答案。但经过反复试验,我找到了解决办法

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

只需添加路径和文件名。例如:

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

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

注意:切勿使用os.path.join(),因为您将收到错误,因此如上所述使用是安全的

相关问题 更多 >

    热门问题