Python xlsx to HTML v2

Python实现Excel指定区域转HTML并加底部文字

import pandas as pd

def excel_to_html_with_footer(file_path, sheet_name, range_address, html_path, footer_text="有问题请联系我"):
    """
    读取Excel指定区域并生成HTML,底部添加联系文字
    """
    try:
        # 1. 读取Excel数据
        excel_file = pd.ExcelFile(file_path)
        df = excel_file.parse(sheet_name)
        
        # 2. 解析并提取指定区域
        def parse_range(range_str):
            import re
            matches = re.findall(r'([A-Z]+)(\d+)', range_str)
            if len(matches) != 2:
                raise ValueError(f"无效范围: {range_str},示例: A1:C10")
            start_col, start_row = matches[0]
            end_col, end_row = matches[1]
            
            def col_to_num(col):
                num = 0
                for c in col:
                    num = num * 26 + (ord(c.upper()) - ord('A') + 1)
                return num - 1
            start_col_num = col_to_num(start_col)
            end_col_num = col_to_num(end_col)
            start_row_num = int(start_row) - 1
            end_row_num = int(end_row) - 1
            return start_row_num, end_row_num, start_col_num, end_col_num
        
        start_row, end_row, start_col, end_col = parse_range(range_address)
        sub_df = df.iloc[start_row:end_row+1, start_col:end_col+1]
        
        # 3. 生成基础HTML(NaN显示为空)
        html_content = sub_df.to_html(na_rep='', index=False, justify='center')
        
        # 4. 构建完整HTML并添加底部文字
        full_html = f"""
        <!DOCTYPE html>
        <html>
        <head>
            <meta charset="UTF-8">
            <title>{sheet_name}数据</title>
            <style>
                table {{ border-collapse: collapse; width: 100%; }}
                th, td {{ border: 1px solid #ddd; padding: 8px; text-align: center; }}
                th {{ background-color: #f2f2f2; font-weight: bold; }}
                .footer {{ margin-top: 20px; padding: 10px; text-align: center; color: #666; font-size: 14px; }}
            </style>
        </head>
        <body>
            <div style="max-width: 900px; margin: 0 auto; padding: 20px;">
                <h3 style="text-align: center; color: #333;">{sheet_name} - {range_address} 数据</h3>
                {html_content}
                <div class="footer">{footer_text}</div>
            </div>
        </body>
        </html>
        """
        
        # 5. 保存HTML文件
        with open(html_path, 'w', encoding='utf-8') as f:
            f.write(full_html)
        
        print(f"HTML生成成功,已添加底部文字: {footer_text}")
        return True
        
    except Exception as e:
        print(f"出错: {str(e)}")
        return False

# 使用示例
if __name__ == "__main__":
    FILE_PATH = "你的文件.xlsx"
    SHEET_NAME = "Sheet1"
    RANGE_ADDRESS = "A1:E20"
    HTML_PATH = "输出.html"
    
    excel_to_html_with_footer(
        file_path=FILE_PATH,
        sheet_name=SHEET_NAME,
        range_address=RANGE_ADDRESS,
        html_path=HTML_PATH
    )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值