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

如何使用Python合并Excel两列并保留各自的字体样式

Python合并Excel列并保留原字体样式的实现方法

可以实现,用openpyxl库就能搞定——它支持Excel的富文本格式,能让合并后的文本保留各自原有的字体大小、颜色等样式。

具体步骤:

  1. 先安装依赖库:
pip install openpyxl
  1. 示例代码:
from openpyxl import load_workbook
from openpyxl.styles import Font
from openpyxl.cell.text import InlineFont
from openpyxl.cell.rich_text import TextBlock, RichText

# 加载Excel文件
wb = load_workbook("你的文件路径.xlsx")
ws = wb.active  # 或者指定工作表,比如wb["Sheet1"]

# 遍历需要处理的行(这里假设从第2行开始,第1行是表头)
for row in range(2, ws.max_row + 1):
    # 获取两列的单元格,这里假设是A列和B列
    cell_a = ws[f"A{row}"]
    cell_b = ws[f"B{row}"]
    
    # 创建富文本对象
    rich_text = RichText()
    
    # 添加A列的文本和样式
    if cell_a.value is not None:
        # 获取原单元格的字体样式
        font_a = cell_a.font
        inline_font_a = InlineFont(
            name=font_a.name,
            sz=font_a.sz,
            color=font_a.color,
            bold=font_a.bold,
            italic=font_a.italic
        )
        rich_text.append(TextBlock(inline_font_a, str(cell_a.value)))
    
    # 可以加个分隔符,比如空格或者逗号
    if cell_a.value and cell_b.value:
        rich_text.append(" ")
    
    # 添加B列的文本和样式
    if cell_b.value is not None:
        font_b = cell_b.font
        inline_font_b = InlineFont(
            name=font_b.name,
            sz=font_b.sz,
            color=font_b.color,
            bold=font_b.bold,
            italic=font_b.italic
        )
        rich_text.append(TextBlock(inline_font_b, str(cell_b.value)))
    
    # 将富文本写入目标单元格,比如C列
    ws[f"C{row}"].value = rich_text

# 保存修改后的文件
wb.save("合并后的文件.xlsx")

代码说明:

  • 用RichText和TextBlock构建带样式的文本,每个TextBlock对应一段带特定字体样式的内容
  • 提取原单元格的font属性,把字号、颜色、字体名等参数传给InlineFont,就能复刻原样式
  • 可以根据需要调整分隔符,或者优化空单元格的处理逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:31:05