You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Excel带格式文本批量转换为保留排版的HTML代码?

Excel带格式单元格批量转保留样式HTML方案

手动复制到Word再转在线工具的流程完全可以用自动化方案替代,1700条多语言数据数分钟即可处理完成,完整保留加粗、斜体、下划线、段落换行等所有格式,同时支持你需要的<p>段落、<br>换行两种输出格式。


方案一:Python脚本批量处理(推荐,可灵活定制)

使用支持富文本读取的openpyxl库操作Excel,不需要依赖Word或在线转换工具,全程本地处理:

  • 核心逻辑:直接读取单元格内的富文本标记,逐段识别文本对应的加粗、斜体、下划线属性,按规则包裹对应HTML标签,再根据选择的输出模式处理段落换行
  • 支持所有常规Excel文本格式,多语言特殊字符可原样保留,输出结果可直接存入MySQL供WYSIWYG编辑器使用

最小可运行代码示例:

from openpyxl import load_workbook
from openpyxl.cell.rich_text import TextBlock, CellRichText

def rich_text_to_html(cell_content, output_type="p"):
    text_parts = []
    # 解析富文本片段和对应格式
    if isinstance(cell_content, CellRichText):
        for part in cell_content:
            if isinstance(part, TextBlock):
                content = part.text
                font_style = part.font
                if font_style.b:
                    content = f"<strong>{content}</strong>"
                if font_style.i:
                    content = f"<em>{content}</em>"
                if font_style.u:
                    content = f"<u>{content}</u>"
                text_parts.append(content)
            else:
                text_parts.append(str(part))
    else:
        text_parts.append(str(cell_content))
    
    full_content = "".join(text_parts)
    # 按指定格式输出HTML
    para_list = [p.strip() for p in full_content.split("\n") if p.strip()]
    if output_type == "p":
        return "\n\n".join([f"<p>{para}</p>" for para in para_list])
    if output_type == "br":
        return "<br />\n<br />\n".join(para_list)

# 批量处理逻辑
if __name__ == "__main__":
    # 读取文件时必须开启rich_text参数,否则会丢失格式
    wb = load_workbook("产品描述源文件.xlsx", rich_text=True)
    ws = wb.active
    # 假设源描述在B列,从第2行开始,转换结果写入C列
    for row_num in range(2, ws.max_row + 1):
        source_val = ws[f"B{row_num}"].value
        # 要换换行格式就把output_type参数改成"br"
        ws[f"C{row_num}"].value = rich_text_to_html(source_val, output_type="p")
    wb.save("转换完成_可直接导入.xlsx")

使用注意:

  • 安装依赖只需要执行pip install openpyxl,不需要额外安装Office软件
  • 转换前建议先备份原文件,随机抽10-20条结果和原单元格格式比对确认无误后再跑全量
  • 如果需要保留超链接、字体颜色等额外格式,只需要在解析富文本的逻辑里加对应标签规则即可,扩展成本极低

方案二:Excel VBA宏处理(无需额外安装环境)

如果设备上不方便运行Python,可以直接在Excel内编写宏实现转换,核心逻辑是通过单元格的Characters对象逐段扫描文本格式,在格式变化的位置插入对应HTML标签,最后按段落规则拼接结果,处理完成后直接写入相邻列,全程不需要导出导入文件。
核心实现逻辑参考:

  • 遍历单元格内每个字符的Font属性,记录加粗、斜体、下划线的状态开关,在状态切换点插入对应的HTML开/闭标签
  • 识别单元格内的硬换行,根据输出需求选择包裹<p>标签或者插入<br />标签
  • 处理完成后直接将结果写入目标列,保存文件即可用于批量导入

避坑提示

  • 不要使用不支持富文本读取的Excel解析库(比如旧版xlrd、pandas默认的Excel读取引擎),这类工具只会读取纯文本内容,所有格式信息会完全丢失
  • 转换后的HTML不需要额外做特殊转义,只要你的MySQL字段字符集设置为utf8mb4,即可正常存储多语言内容,前端WYSIWYG编辑器可直接渲染还原原格式

内容的提问来源于stack exchange,提问作者Eve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 07:24:24