如何使用python在Excel中合并相同的文本颜色单元格?

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

我对使用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
------------

黑色字体文本应合并在一起,而红色字体文本应合并在一起。输出应分为black-red-black字体文本块。第一组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代码中实现,尽管我无法进一步讨论如何合并单元格。是否可以将单元格值合并到pandas数据框中,或者是否有任何其他python模块可以成功给出预期的输出?

python excel colors xlrd xlwt
1个回答
0
投票

您可以在其他列的excel中标记颜色,然后可以使用熊猫读取该excel文件。查看颜色公式可以看到Excel formula to get cell color。对于其他分组,您可以看到Finding rows with same column values in pandas dataframe

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