😉 python 实现 excel, html 转 pdf

      要实现html网页,excel文件转成pdf格式的文档,在 python 中要借助 pdfkit 这个库,而pdfkit 这个库底层依赖 wkhtmltopdf软件,好在wkhtmltopdf这个软件是跨平台的,提供了不同平台的安装包。
wkhtmltopdf 软件的安装

  • Debian/Ubuntu 平台
sudo apt-get install wkhtmltopdf
  • Redhat/CentOS
sudo yum install wkhtmltopdf
pip install pdfkit

检测(wkhtmltopdf)是否安装成功

which wkhtmltopdf
# 如果能显示路径说明安装成功
image.png

如何转换

# 将 excel文件转换成 pdf
def excel_to_pdf(path):
    # lazy import pandas
    import pandas as pd
    import pdfkit
    # 表格标题居中显示
    pd.set_option('colheader_justify', 'center')
    df = pd.read_excel(path)
    html_string = '''
    <html>
      <link rel="stylesheet" type="text/css" href="table_style.css"/>
      <body>
        {table}
      </body>
    </html>.
    '''
    with open('export_df.html', 'w') as f:
        f.write(html_string.format(table=df.to_html(classes='default', index=False)))
    options = {
        'encoding': "UTF-8",
        'no-outline': None
    }
    pdfkit.from_file('export_df.html', 'export_pdf.pdf', options=options)

css样式文件 注意文件名: table_style.css

.default {
    font-size: 11pt; 
    font-family: Arial;
    border-collapse: collapse;
    border: 0px solid silver;
}
.default td, th {
    padding: 0px;
    border-style:none;
    text-align:center;
    vertical-align:middle
}
.default tr:nth-child(even) {
    background: #E0E0E0;
}
.default tr:hover {
    background: silver;
    cursor: pointer;
}

🎉🎉🎉

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。