Excel 拆分第一列单元格内容到新工作表并保留样式

本文介绍如何使用 Python 和 openpyxl 库将 Excel 工作表中第一列单元格内容拆分到新的工作表,同时保留原工作表中的字体颜色和填充颜色。

步骤:

  1. 导入 openpyxl 库和 FontPatternFill 类:
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill
  1. 读取 Excel 文件:
wb = load_workbook('your_excel_file.xlsx')
sheet = wb['Sheet1']  # 替换为你的工作表名称
  1. 获取第一列单元格内容:
col1_values = [cell.value for cell in sheet['A']]  # 替换为你的列字母
  1. 循环遍历第一列单元格内容,创建新工作表:
unique_values = set(col1_values)
for value in unique_values:
    count = col1_values.count(value)
    new_sheet_name = f'{value} ({count} 人)'
    new_sheet = wb.create_sheet(title=new_sheet_name)

    # 在新工作表的第一行插入原工作表A1单元格的内容
    new_sheet.insert_rows(1)
    for col_num, cell in enumerate(sheet[1], 1):
        new_sheet.cell(row=1, column=col_num, value=cell.value)
        # 复制字体和填充颜色到新单元格
        new_sheet.cell(row=1, column=col_num).font = cell.font
        new_sheet.cell(row=1, column=col_num).fill = cell.fill

    # 添加第二行单元格内容到新工作表
    new_sheet.append(row2_values)

    # 添加第一列单元格内容到新工作表
    for row_num, cell_value in enumerate(col1_values):
        if cell_value == value:
            new_row_values = [cell.value for cell in sheet[row_num + 2]]
            new_sheet.append(new_row_values)
            # 复制字体和填充颜色到新单元格
            for col_num, cell in enumerate(sheet[row_num + 2], 1):
                new_sheet.cell(row=new_sheet.max_row, column=col_num).font = cell.font
                new_sheet.cell(row=new_sheet.max_row, column=col_num).fill = cell.fill
  1. 保存 Excel 文件:
wb.save('new_excel_file.xlsx')  # 替换为你的新文件名

代码解释:

  • cell.fontcell.fill 属性用于获取原单元格的字体和填充颜色。
  • 将获取的字体和填充颜色赋值给新单元格的 fontfill 属性,即可保留原单元格的样式。

注意:

  • row2_values 是第二行单元格内容,请根据你的实际情况进行修改。
  • Sheet1 是原工作表的名称,请根据你的实际情况进行修改。
  • new_excel_file.xlsx 是新文件的名称,请根据你的实际情况进行修改。

希望这篇教程能帮助你顺利将 Excel 工作表拆分并保留样式。

Excel 拆分第一列单元格内容到新工作表并保留样式

原文地址: https://www.cveoy.top/t/topic/fXjn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录