我对Python编码相对较新,因此遇到了一个编码问题,即从输入excel合并单元格中类似字体颜色的文本,并将输出保存回excel文件。输入excel文件如下:-
------------
| John | #black color font text
------------
| Charlie | #black color font text
------------
| Sean | #red color font text
------------
| Johnny | #red color font text
------------
| Tom | #black color font text
------------
| Ronny | #red color font text
------------
| Larry | #black color font text
------------
黑色字体文本应合并在一起,红色字体文本应合并在一起。输出应分为黑-红-黑字体文本块。第一组Block-1单元格的值应如下所示:-
--------------
|John Charlie| #black color font text
--------------
|Sean Johnny | #red color font text
--------------
|Tom | #black color font text
---------------
要添加到输出excel的第二个Block-2单元格组应具有Block-1中最后一个黑色字体文本,其余值应紧随其后。
---------------
|Tom | #black color font text
---------------
|Ronny | #red color font text
---------------
|Larry | #black color font text
---------------
最终输出excel应该是Block-1和Block-2的组合,这意味着Tom应该在输出excel中重复两次。
import xlrd
book = xlrd.open_workbook("input-out.xls", formatting_info=True)
def font_color(xf):
font = book.font_list[xf.font_index]
if not font:
return None
return get_color(font.colour_index)
def get_color(color_index):
return book.colour_map.get(color_index)
red_rows = []
black_rows = []
sheets = book.sheet_names()
for index, sh in enumerate(sheets):
sheet = book.sheet_by_index(index)
rows, cols = sheet.nrows, sheet.ncols # 11, 1 - int type
for row in range(1,rows):
for col in range(cols):
c = sheet.cell(row, col)
xf = book.xf_list[c.xf_index]
color = font_color(xf)
if 255 not in color: # black rows
black_rows.append(row)
else: # red rows
red_rows.append(row)
上面实现了检测红色和黑色文本字体的python代码,尽管我无法进一步讨论如何合并单元格。是否可以将单元格值合并到数据帧中,或者是否有其他python模块可以成功地提供预期的输出?
您可以在另一列中标记excel中的颜色,然后可以使用熊猫读取该excel文件。颜色检查公式您可以查看Excel公式以获取单元格颜色。对于其他分组,您可以看到在dataframe中查找具有相同列值的行
有人知道如何在excel中更改单元格特定文本的颜色吗。我正在使用apache poi,我可以发现如何更改整个单元格的文本颜色。但我只想要一个特定的文本。 A1单元有Hello World,我希望“Hello”为蓝色,“World”为绿色。我该怎么做?
我有一个对象列表,我试图为每个对象指定三行,我使用的"Office Open Xml库"有以下例程: 然而,它弹出一个错误,说不能合并已经合并的单元格。 所以问题是如何在Excel中合并两个以上的单元格?
我使用POI API从Postgres数据库生成了excel文档。第一列“Ordre”有许多相同的值。但是我想合并具有相同值的单元格。 我想遵循这个算法: 在字段“ordre”中循环 如果单元格(i)=单元格(i1) 而不是合并它们 但是我有一个问题,在Java中如何说,我不希望它能给出一些令人满意的结果,我开始写这段代码: 任何建议都将不胜感激
问题内容: 我使用xlwt Python库在excel工作簿中写入数据。 现在我在将背景色添加到excel单元时遇到了一些问题。 例如,我在RGB(10,20,30)中有下一个颜色,最简单的方法是什么?有什么办法可以将此颜色设置为单元格吗? 问题答案: 在此示例中,我展示了如何设置单元格的背景色,您可以将其运行以得到结果:
我在javaFX中有一个文本字段,在该字段中键入的任何内容都必须以蓝色显示,这可以通过css实现吗?如果是,那么如何?
问题内容: 还有其他方法可以使用Apache POI库在Excel中合并单元格? 我正在尝试使用以下内容,但无法正常工作 问题答案: 您可以使用 该示例将从B2合并到E2。请记住,它是基于零的索引(例如POI版本3.12)。 有关详细信息,请参见《BusyDeveloper指南》。