.xlsx and xls(Latest Versions) to pdf using python

匿名 (未验证) 提交于 2019-12-03 02:15:02

问题:

With the help of this .doc to pdf using python Link I am trying for excel (.xlsx and xls formats)

Following is modified Code for 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() 

It is showing following error :

>>> 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) >>> 

There is problem in

doc.SaveAs(out_file, FileFormat=56)

What should be FileFormat file format? Please Help

回答1:

Link of xlsxwriter :

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

With the help of this you can generate excel file with .xlsx and .xls

for example excel file generated name is trial.xls

Now if you want to generate pdf of that excel file then do the following :

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') 


回答2:

You can print an excel sheet to pdf on linux using python. Do need to run openoffice as a headless server and use unoconv, takes a bit of configuring but is doable

You run OO as a (service) daemon and use it for the conversions for xls, xlsx and doc, docx.

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



回答3:

I got the same thing and the same error... ANSWER: 57.... see below...

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() 

... as an alternative to the fragile ExportAsFixedFormat...



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!