使用 OpenPyxl 在单元格内应用不同的颜色编码

问题描述 投票:0回答:1

我有几个已经制作好的Excel,我想对其进行格式化。 其中一种格式是将单元格的一部分设置为绿色,另一部分设置为红色。 对于此示例,我们假设单元格“A1”填充有“Hello World!”。

我想将“Hello”设置为绿色字体,将“World!”设置为绿色字体。用红色字体,在同一单元格内。

我知道使用 xlsxwriter 或 xlwings 是可能的,但两者都不适用于我的情况:

  • 我已经有了想要调整的 Excel,而 xlsxwriter 只在新工作表上写入。
  • Xlwings 在我的环境中不可用。

因此,我一直在尝试使用好的旧 OpenPyxl 库,但根据我的理解,这对于我想做的事情来说并不是最好的..

让我们尝试以下示例,只需(应该)用红色写“Hello”和“World!” Excel 工作表中的黑色。

from openpyxl import Workbook 
from openpyxl.cell.rich_text import TextBlock, CellRichText 
from openpyxl.cell.text import InlineFont  
wb = Workbook() 
ws = wb.active  
red = InlineFont(color='FF000000') 
rich_string1 = CellRichText([TextBlock(red, 'Hello'), "World!"])  
ws["A1"] = rich_string1  
wb.save("hello_world_richtext.xlsx")  

结果并不像预期的那样用黑色书写。我一直在尝试几件事,例如使用 xlsxwriter 在单独的工作表中书写并使用 openpyxl 复制粘贴到正确的位置,但它丢失了格式。 你们中有人知道我该如何继续吗? 预先感谢

python excel openpyxl xlsxwriter xlwings
1个回答
0
投票

FF000000
是黑色,不是红色。红色是
00FF0000
。除此之外,您的代码应该可以工作。它只是将黑色和黑色放在一起,因此不可见。

© www.soinside.com 2019 - 2024. All rights reserved.