Python Openpyxl自动化处理Excel:根据首列值拆分表格
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')
代码说明:
- 导入
openpyxl模块。2. 加载要处理的Excel文件。3. 获取首列的值、第二行的值以及首列的唯一值。4. 遍历每个唯一值,创建新的工作表,并将对应的数据复制到新工作表中。5. 复制单元格的字体和填充颜色到新工作表。6. 保存修改后的Excel文件。
注意事项:
- 需要安装
openpyxl库:pip install openpyxl* 将代码中的example.xlsx替换为实际的文件名。
希望本文能够帮助您使用Python的Openpyxl库轻松地根据首列值拆分Excel表格!
原文地址: https://www.cveoy.top/t/topic/laCV 著作权归作者所有。请勿转载和采集!