2016-08-16 4 views
1

Мне удалось создать много файлов excel, извлекая соответствующие данные из таблиц MySQL и заполняя эти данные в Excel с помощью Xlsxwriter. Количество созданных файлов Excel может превышать 100 секунд в момент генерации данных, и мне нужно, чтобы каждый файл Excel был преобразован в PDF до того, как я вышлю по электронной почте файлы.Создайте файл excel с помощью xlsxwriter и сохраните файл excel в PDF

Вручную конвертировать каждый файл Excel требуется несколько минут, но просто представьте, что вы делаете сотни файлов. Я хочу избежать использования com32 или comtypes, и просто через Xlsxwriter или VBA, чтобы выполнить преобразование. Я написал несколько кодов для Xlsxwriter, но почему-то это не сработало. Может кто-нибудь посоветует, пожалуйста. Благодарю.

VBA_worksheet=current_workbook.add_worksheet() 
current_workbook.add_vba_project('printPDF') 
VBA_worksheet.write_formula('A1', 'ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF') 
VBA_worksheet.activate() 
VBA_worksheet.hide() 

ответ

0

Код, указанный вами, выглядит так, как будто вы пытаетесь выполнить макрос VBA из XlsxWriter. Если это так не сработает.

Можно добавить макросы VBA и функции в файлы XlsxWriter, но только Excel может их выполнить.

Чтобы преобразовать файлы xlsx в PDF, вам придется автоматизировать Excel или, возможно, найти стороннее приложение, которое может это сделать.

+0

Спасибо JMC, я попытался использовать Win32com и ComTypes. Так или иначе, я не мог заставить модули работать, и я понятия не имею, почему. В настоящее время я выполняю Python в Windows, но позже нам нужно переместить ОС на Debian Jessie, и мне сказали, что Win32com и Comtypes не будут работать. Итак, мне нужны советы. Благодарю. – Keith

+0

В этом случае вам нужно будет найти инструмент, который преобразует файлы xlsx в PDF в Linux. Я не знаю такого инструмента, но это не значит, что его нет. – jmcnamara

Смежные вопросы