将图表导出到另一个路径win32Com

问题描述 投票:0回答:1

问题

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

问题

是否有一种方法声明要导出的路径? (PS)我已经尝试阅读文档,但是没有关于我的问题的信息。谢谢。

代码

需要注意的一件事:这段代码是在2018年的stackoverflow问题中的1个中得到回答的。因此,我不认为这是值得的。但是我正在做类似的事情。谢谢。

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)
python python-3.x win32com
1个回答
0
投票

解决方案>>

[伙计们,对不起,我张贴我的答案。但是经过一番尝试和错误之后,我找到了解决方法

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

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

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

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

注意:

请勿使用os.path.join(),因为会出现错误,因此如上所述可以安全使用。
© www.soinside.com 2019 - 2024. All rights reserved.