使用Python中的comtypes将Excel文档转换为pdf时出错

我正在尝试使用Python和使用此代码的comtypes包将Excel电子表格转换为PDF:

import os import comtypes.client FORMAT_PDF = 17 SOURCE_DIR = 'C:/Users/IEUser/Documents/jscript/test/resources/root3' TARGET_DIR = 'C:/Users/IEUser/Documents/jscript' app = comtypes.client.CreateObject('Excel.Application') app.Visible = False infile = os.path.join(os.path.abspath(SOURCE_DIR), 'spreadsheet1.xlsx') outfile = os.path.join(os.path.abspath(TARGET_DIR), 'spreadsheet1.pdf') doc = app.Workbooks.Open(infile) doc.SaveAs(outfile, FileFormat=FORMAT_PDF) doc.Close() app.Quit() 

这个脚本运行良好,PDF文件被创build,但是当我尝试打开它时,我得到的错误“文件无法打开 – 文件格式有问题”(但closures这个错误对话框后,它实际上是可能的预览PDF文件)。 我已经尝试了类似的脚本来将Word文档转换为PDF文件,这工作得很好。

任何想法如何解决这个问题的文件格式错误?

find了解决办法 – 这似乎是工作:

 import os import comtypes.client SOURCE_DIR = 'C:/Users/IEUser/Documents/jscript/test/resources/root3' TARGET_DIR = 'C:/Users/IEUser/Documents/jscript' app = comtypes.client.CreateObject('Excel.Application') app.Visible = False infile = os.path.join(os.path.abspath(SOURCE_DIR), 'spreadsheet1.xlsx') outfile = os.path.join(os.path.abspath(TARGET_DIR), 'spreadsheet1.pdf') doc = app.Workbooks.Open(infile) doc.ExportAsFixedFormat(0, outfile, 1, 0) doc.Close() app.Quit() 

对于ExportAsFixedFormat函数的参数,这个链接也可能是有用的: Document.ExportAsFixedFormat方法 (尽pipe一些参数的值必须被修改)。