Python xlsxwriter write_rich_string并突出显示

时间:2015-03-20 14:36:59

标签: python xlsxwriter

我使用xlsxwriter生成excel报告。由于write_rich_string方法,我想强调文本的一部分。

format = {
    'text': self.formats.result,
    'difference': self.formats.difference_result
}
args = [self.current_line, _column]
for diff in _diff:
    args.append(format.get(diff.get('kind')))
    args.append(diff.get('text'))
args.append(self.formats.result)
self.worksheet.write_rich_string(*args)

这些格式:

self.difference_result = self.workbook.add_format()
self.difference_result.set_font_color('yellow')
self.difference_result.set_fg_color('red')

self.result = self.workbook.add_format()
self.result.set_align('top')
self.result.set_text_wrap()
self.result.set_border(1)
self.result.set_border_color('gray')

我的问题是文字是黄色的,但不是高亮的红色。这可能与xlsxwriter一起使用吗?

2 个答案:

答案 0 :(得分:2)

  

这可以用xlsxwriter吗?

一般情况下,如果可以在Excel中进行格式化,则可以在XlsxWriter中进行格式化,因为它支持所有Excel的单元格格式。

不幸的是,您在Excel中尝试做的事情是不可能的。来自write_rich_string() docs

  

在Excel中,只有格式的字体属性(如字体名称,样式,大小,下划线,颜色和效果)才会应用于富字符串中的字符串片段。其他功能(如边框,背景,文本换行和对齐)必须应用于单元格。

答案 1 :(得分:0)

这有效:

import xlsxwriter
outfile  = xlsxwriter.Workbook('file.xlsx')
sheet    = outfile.add_worksheet()
underlin = outfile.add_format({'underline': True})
sheet.write_rich_string(0,0,"This text as usual, ",underlin,"this underlined, ","and this as usual")
outfile.close()