Как преобразовать файлы .xls (x) в PDF в Python или NodeJS (без Windows)? - PullRequest
2 голосов
/ 26 февраля 2020

Я строю проект в AWS с использованием лямбда-функций, и мне нужно конвертировать некоторые файлы .xls (x) в pdfs. Я обнаружил, что этот вид функциональности всегда связан с библиотеками Microsoft Office, поэтому, если я хочу преобразовать файл Office, мне нужно быть в Windows. Есть какой-нибудь способ реализовать эту функцию (Python3 .x или NodeJS) без стороннего поставщика (с точки зрения цены ...)?

Как часть моего рабочего пути, я попытался чтобы получить информацию с помощью Python Pandas и Python xlrd, желающих создать файл pdf самостоятельно, я попытался также использовать некоторые библиотеки Node и Python (но все зависят от Windows). Я тоже видел цены на некоторые услуги.

Есть предложения?

1 Ответ

0 голосов
/ 27 февраля 2020

Я все еще ищу помощь, но я нашел подход, который помогает частично (это не мое решение, но может кому-то помочь).

Я использую библиотеки xhtml2pdf и Pandas. Я получаю содержимое xls (x) с помощью Pandas, затем экспортирую файл в HTML и, наконец, создаю из него PDF-файл.

Основная проблема - структура, я потерял макет, цвета , шрифты, все прелестно, но я сохранил значения из ячеек.

from xhtml2pdf import pisa
import pandas as pd

xl = pd.ExcelFile("myExcelFile.xlsx")
df = xl.parse("sheet_name")

# Some cleaning
df.dropna(how="all") # If the row is completely NaN
df.dropna(how="all", axis="columns") # If the column is completely NaN
df.fillna("") # I delete the NaN values (just for beautify)

df.to_html('htmlFile.html', border=0)

with open("htmlFile.html", "r") as htmlFile:
    with open("pdfFile.pdf", "w+b") as resultFile:
        pisaStatus = pisa.CreatePDF(htmlFile, dest=resultFile)
...