如何为字符串中间部分设置样式?(支持Openpyxl或其他库)
如何为Excel单元格内字符串的中间部分设置样式
当然可以实现,用Openpyxl的**富文本(RichText)**就能给单元格内的部分文本单独设置样式,不用给整个单元格统一应用字体。
用Openpyxl实现的示例代码:
from openpyxl import Workbook from openpyxl.styles import Font from openpyxl.cell.text import InlineFont from openpyxl.cell.rich_text import RichText wb = Workbook() ws = wb.active # 定义不同的字体样式 normal_font = InlineFont(name='微软雅黑', size=11) bold_spec_font = InlineFont(name='Consolas', size=9, bold=True) # 构建富文本:普通文本 + 带样式的中间文本 + 普通文本 rich_text = RichText( "前缀文本", ("需要特殊样式的中间内容", bold_spec_font), "后缀文本" ) # 将富文本写入单元格 ws['A2'].value = rich_text wb.save("富文本示例.xlsx")
用XlsxWriter实现的方法(备选库)
如果换用XlsxWriter,也可以通过write_rich_string快速实现:
import xlsxwriter wb = xlsxwriter.Workbook('富文本示例.xlsx') ws = wb.add_worksheet() # 定义格式 spec_format = wb.add_format({'font_name': 'Consolas', 'font_size': 9, 'bold': True}) normal_format = wb.add_format({'font_name': '微软雅黑', 'font_size': 11}) # 写入富文本字符串 ws.write_rich_string('A2', normal_format, '前缀文本', spec_format, '需要特殊样式的中间内容', normal_format, '后缀文本') wb.close()
你之前的代码是给整个单元格应用统一字体,所以无法实现部分文本的样式区分,改用富文本就能解决这个问题。
内容的提问来源于stack exchange,提问作者hacoo
相关产品推荐
相关产品推荐

