将xlsx格式的表格转化为HTML格式

from xlsx2html import xlsx2html

html = xlsx2html("input.xlsx", "outfile.html")

如果源xlsx中包含中文内容,可能会存在乱码
在这里插入图片描述

让我们转到函数xlsx2html()的定义,找到HTML生成函数render_data_to_html()

def xlsx2html(
    filepath,
    output=None,
    locale="en",
    sheet=None,
    parse_formula=False,
    append_headers=(lambda dumb1, dumb2: True),
    append_lineno=(lambda dumb1, dumb2: True),
    default_cell_border="none",
):
    wb = openpyxl.load_workbook(filepath, data_only=True)
    ws = get_sheet(wb, sheet)

    fs = None
    if parse_formula:
        fb = openpyxl.load_workbook(filepath, data_only=False)
        fs = get_sheet(fb, sheet)

    data = worksheet_to_data(
        ws, locale=locale, fs=fs, default_cell_border=default_cell_border
    )
    #HTML生成函数
    html = render_data_to_html(data, append_headers, append_lineno)

    if not output:
        output = io.StringIO()
    if isinstance(output, str):
        output = open(output, "w")
    output.write(html)
    output.flush()
    return output

转到render_data_to_html(),修改模板中的编码

def render_data_to_html(data, append_headers, append_lineno):
    html = """
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="GB2312">
        <!--meta charset="UTF-8"修改编码格式-->
        <title>Title</title>
    </head>
    <body>
        %s
    </body>
    </html>
    """
    return html % render_table(data, append_headers, append_lineno)
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值