Automatización de la oficina de Python: exportación por lotes del contenido de la tabla de Excel a archivos PDF

Python procesa automáticamente los datos de la tabla de Excel

Preámbulo

En el artículo anterior, implementamos la combinación de datos de varias tablas en una tabla, esta vez aprenderemos cómo exportar datos de tablas como archivos PDF por separado.

Parte de los datos
inserte la descripción de la imagen aquí
y luego necesita instalar este software wkhtmltopdf

Si no sabe cómo descargarlo, puede escanearlo en el lado izquierdo de la computadora para encontrar lo que quiero

Visualización de efectos
Exporte cada dato por separado como PDF

Código

import pdfkit
import openpyxl
import os

target_dir = '经销商预算'

if not os.path.exists(target_dir):
    os.mkdir(target_dir)

html = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        table {
            font-size: 22px;
            font-weight: bolder;
            width: 850px;
        }
    </style>
</head>
<body>
<table border="1" align="center" cellspacing="1">
    <tr>
        <td class='title' align="center" colspan="6">2020年广东经销商预算目标</td>
    </tr>
    <tr>
        <td>经销商代码</td>
        <td>经销商名称</td>
        <td>成车数量</td>
        <td>成车金额</td>
        <td>商品金额</td>
        <td>客户签字</td>
    </tr>
    <tr>
        <td>{code}</td>
        <td>{name}</td>
        <td>{number}</td>
        <td>{money}</td>
        <td>{total}</td>
        <td></td>
    </tr>
</table>
</body>
</html>
"""


def html_to_pdf(filename_html, filename_pdf):
    """HTML 2 PDF"""
    config = pdfkit.configuration(wkhtmltopdf='D:\\wkhtmltopdf\\bin\\wkhtmltopdf.exe')
    pdfkit.from_file(filename_html, filename_pdf, configuration=config)


wb = openpyxl.load_workbook('2020经销商目标.xlsx')

sheet = wb['Sheet1']

print(sheet.rows)

for row in list(sheet.rows)[3:]:
    data = [value.value for value in row]
    data = data[1:-1]
    format_html = html.replace('{code}', data[0])
    format_html = format_html.replace('{name}', data[1])
    format_html = format_html.replace('{number}', str(data[2]))
    format_html = format_html.replace('{money}', f'{
      
      data[3]:.2f}')
    format_html = format_html.replace('{total}', f'{
      
      data[4]:.2f}')
    with open('example.html', mode='w', encoding='utf-8') as f:
        f.write(format_html)
    html_to_pdf('example.html', target_dir + os.path.sep + data[0] + " " + data[1] + '.pdf')

Si te gusta, recuerda darle me gusta y recolectarlo ~
Sígueme para compartir más productos secos técnicos
. Tomar el código directamente es equivalente a prostituirse por nada. Me gusta y recolectar es la verdad ...
Su apoyo es la fuerza motriz de mi ¡actualizar!

Supongo que te gusta

Origin blog.csdn.net/fei347795790/article/details/124196275
Recomendado
Clasificación