Python Openpyxl自动化处理Excel:根据首列值拆分表格

在数据处理过程中,我们经常需要根据某一列的值对Excel表格进行拆分。本文将介绍如何使用Python的Openpyxl库,根据Excel表格首列的唯一值,将表格拆分成多个新的工作表,并保留原表格的格式,例如字体和填充颜色。

**代码示例:**pythonimport openpyxl

加载Excel文件wb = openpyxl.load_workbook('example.xlsx')# 获取活动工作表sheet = wb.active

获取首列的值col1_values = [cell.value for cell in sheet['A'][1:]]# 获取第二行的值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 if cell.value else '' 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

保存Excel文件wb.save('example.xlsx')

代码说明:

  1. 导入openpyxl模块。2. 加载要处理的Excel文件。3. 获取首列的值、第二行的值以及首列的唯一值。4. 遍历每个唯一值,创建新的工作表,并将对应的数据复制到新工作表中。5. 复制单元格的字体和填充颜色到新工作表。6. 保存修改后的Excel文件。

注意事项:

  • 需要安装openpyxl库:pip install openpyxl* 将代码中的example.xlsx替换为实际的文件名。

希望本文能够帮助您使用Python的Openpyxl库轻松地根据首列值拆分Excel表格!

Python Openpyxl自动化处理Excel:根据首列值拆分表格

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

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