Я всегда использовал модуль win32com
на своем сервере разработки для простого преобразования из xlsx
в pdf
:
o = win32com.client.Dispatch("Excel.Application")
o.Visible = False
o.DisplayAlerts = False
wb = o.Workbooks.Open("test.xlsx")))
wb.WorkSheets("sheet1").Select()
wb.ActiveSheet.ExportAsFixedFormat(0, "test.pdf")
o.Quit()
Однако я развернул свое приложение Django
на производственном сервере, гдеУ меня не установлено приложение Excel, и возникает следующая ошибка:
File "C:\virtualenvs\structuraldb\lib\site-packages\win32com\client\__init__.p
y", line 95, in Dispatch
dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,c
lsctx)
File "C:\virtualenvs\structuraldb\lib\site-packages\win32com\client\dynamic.py
", line 114, in _GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "C:\virtualenvs\structuraldb\lib\site-packages\win32com\client\dynamic.py
", line 91, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.II
D_IDispatch)
com_error: (-2147221005, 'Invalid class string', None, None)
Есть ли хорошая альтернатива для преобразования из xlsx
в PDF
в Python?
У меня естьПротестировал xtopdf с PDFWriter, но с этим решением вам нужно читать и повторять диапазон и писать строки одну за другой.Интересно, есть ли более прямое решение, подобное win32com.client.
Спасибо!