.xlsx和xls(最新版本)到PDF使用Python

随着这个.doc到PDF使用python链接的帮助,我想为Excel(.xlsx和xls格式)

以下是修改Excel代码:

import os from win32com import client folder = "C:\\Oprance\\Excel\\XlsxWriter-0.5.1" file_type = 'xlsx' out_folder = folder + "\\PDF_excel" os.chdir(folder) if not os.path.exists(out_folder): print 'Creating output folder...' os.makedirs(out_folder) print out_folder, 'created.' else: print out_folder, 'already exists.\n' for files in os.listdir("."): if files.endswith(".xlsx"): print files print '\n\n' word = client.DispatchEx("Excel.Application") for files in os.listdir("."): if files.endswith(".xlsx") or files.endswith('xls'): out_name = files.replace(file_type, r"pdf") in_file = os.path.abspath(folder + "\\" + files) out_file = os.path.abspath(out_folder + "\\" + out_name) doc = word.Workbooks.Open(in_file) print 'Exporting', out_file doc.SaveAs(out_file, FileFormat=56) doc.Close() 

它显示以下错误:

 >>> execfile('excel_to_pdf.py') Creating output folder... C:\Excel\XlsxWriter-0.5.1\PDF_excel created. apms_trial.xlsx ~$apms_trial.xlsx Exporting C:\Excel\XlsxWriter-0.5.1\PDF_excel\apms_trial.pdf Traceback (most recent call last): File "<stdin>", line 1, in <module> File "excel_to_pdf.py", line 30, in <module> doc = word.Workbooks.Open(in_file) File "<COMObject <unknown>>", line 8, in Open pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Excel ', u"Excel cannot open the file '~$apms_trial.xlsx' because the file format or f ile extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file.", u'xlmain11.chm', 0, -21468 27284), None) >>> 

有问题了

doc.SaveAs(out_file,FileFormat = 56)

什么是FileFormat文件格式? 请帮忙

xlsxwriter的链接:

https://xlsxwriter.readthedocs.org/en/latest/contents.html

借助于此,您可以使用.xlsx.xls生成excel文件

比如excel文件生成的名字是trial.xls

现在,如果你想生成该Excel文件的PDF,然后执行以下操作:

 from win32com import client xlApp = client.Dispatch("Excel.Application") books = xlApp.Workbooks.Open('C:\\excel\\trial.xls') ws = books.Worksheets[0] ws.Visible = 1 ws.ExportAsFixedFormat(0, 'C:\\excel\\trial.pdf') 

你可以使用python在Excel上打印一个Excel表格。 需要运行openoffice作为无头服务器,并使用unoconv,需要一些configuration,但是可行的

您将OO作为(服务)守护程序运行,并将其用于xls,xlsx和doc,docx的转换。

http://dag.wiee.rs/home-made/unoconv/

我得到了同样的事情和相同的错误…答案:57 ….见下面…

 from win32com import client import win32api def exceltopdf(doc): excel = client.DispatchEx("Excel.Application") excel.Visible = 0 wb = excel.Workbooks.Open(doc) ws = wb.Worksheets[1] try: wb.SaveAs('c:\\targetfolder\\result.pdf', FileFormat=57) except Exception, e: print "Failed to convert" print str(e) finally: wb.Close() excel.Quit() 

…作为脆弱的ExportAsFixedFormat的替代…