Excel 拆分工作表并保留单元格格式 - Python openpyxl 教程

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

代码示例:

import openpyxl
import openpyxl.styles as styles

# 加载工作簿
wb = openpyxl.load_workbook('your_workbook.xlsx')

# 获取工作表
sheet = wb['Sheet1']

# 获取第一列单元格的值
col1_values = [cell.value for cell in sheet['A']]

# 获取第二行单元格的值
row2_values = [cell.value for cell in sheet[2]]

# 拆分工作表
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_row = new_sheet.append(new_row_values)
            for col_num, cell in enumerate(new_row, 1):
                orig_cell = sheet.cell(row=row_num + 1, column=col_num)
                cell.font = styles.Font(name=orig_cell.font.name, size=orig_cell.font.size, bold=orig_cell.font.bold, italic=orig_cell.font.italic, color=orig_cell.font.color)
                cell.fill = orig_cell.fill

# 保存工作簿
wb.save('new_workbook.xlsx')

代码解释:

  1. 导入库: 导入 openpyxl 库用于处理 Excel 文件,以及 openpyxl.styles 用于访问和操作单元格样式。
  2. 加载工作簿: 使用 openpyxl.load_workbook() 加载要拆分的工作簿。
  3. 获取工作表: 使用 wb['Sheet1'] 获取要拆分的工作表。
  4. 获取单元格值: 使用列表推导获取第一列和第二行的单元格值。
  5. 拆分工作表:
    • 使用 set() 获取第一列单元格值中的唯一值。
    • 遍历唯一值,并根据每个值创建新的工作表。
    • 统计每个值在第一列中出现的次数,并将其添加到新工作表名称中。
  6. 保留单元格格式:
    • 在新工作表的第一行插入原工作表 A1 单元格的内容,并使用 cell.fontcell.fill 属性来保留原单元格的字体颜色和填充颜色。
    • 在添加第一列单元格内容到新工作表时,使用 openpyxl.styles.Fontcell.fill 来保留原单元格的格式和填充颜色。
  7. 保存工作簿: 使用 wb.save() 保存修改后的工作簿。

注意:

  • 确保已安装 openpyxl 库。可以使用 pip install openpyxl 命令安装。
  • 将代码中的 'your_workbook.xlsx' 替换为要拆分的工作簿的文件名。
  • 将代码中的 'new_workbook.xlsx' 替换为保存新工作簿的文件名。

希望这篇教程能够帮助您使用 Python 拆分 Excel 工作表并保留单元格格式。如果您有任何问题,请随时提出。

Excel 拆分工作表并保留单元格格式 - Python openpyxl 教程

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

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