.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的转换。
我得到了同样的事情和相同的错误…答案: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的替代…