Preamble
In the previous article, we implemented the merging of multiple table data into one table, this time we will learn how to export table data as PDF files separately.
Part of the data
and then you need to install this software wkhtmltopdf
If you don't know how to download it, you can scan it on the left side of the computer to find what I want
Effect display
Export each data separately as a PDF
Code
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')
If you like it, remember to like and collect it~
Follow me to share more technical dry goods
. Taking the code directly is equivalent to whoring, like and collecting is the truth...
Your support is the driving force for my update!