Python拆分Excel表格:按列内容分组并保留格式
使用Python拆分Excel表格,按列内容分组并保留格式
本文将介绍如何使用Python的openpyxl库,根据指定列的内容拆分Excel表格。你将学习如何:
- 按特定列的值对数据进行分组* 创建新的工作表并将分组数据写入其中* 复制原始表格的格式(字体、填充、边框、对齐方式等)* 将特定单元格的内容复制到新工作表
Python代码示例
以下代码演示了如何使用openpyxl库拆分Excel表格:pythonfrom openpyxl import load_workbook
打开工作簿wb = load_workbook('example.xlsx')
获取第一个工作表ws1 = wb.worksheets[0]
获取表头行header_row = 2
获取表头headers = []for col in range(1, ws1.max_column + 1): cell = ws1.cell(row=header_row, column=col) if cell.value: headers.append(cell.value)
遍历每一列for col in range(1, ws1.max_column + 1): header_cell = ws1.cell(row=header_row, column=col) if header_cell.value and header_cell.value in headers: # 创建新的工作表 new_ws_name = header_cell.value new_ws = wb.create_sheet(title=new_ws_name)
# 写入窗格A1的内容 new_ws['A1'] = ws1['A1'].value
# 复制表头 for header_col in range(1, ws1.max_column + 1): header_cell = ws1.cell(row=header_row, column=header_col) new_cell = new_ws.cell(row=header_row, column=header_col, value=header_cell.value) new_cell._style = header_cell._style # 复制单元格样式
# 复制相同内容的行 row_index = header_row + 1 for row in ws1.iter_rows(min_row=row_index, min_col=col, max_col=col): cell_value = row[0].value if cell_value: for cell in row: new_cell = new_ws.cell(row=row_index, column=cell.column, value=cell.value) new_cell._style = cell._style # 复制单元格样式 row_index += 1
保存工作簿wb.save('example_split.xlsx
原文地址: https://www.cveoy.top/t/topic/fW9a 著作权归作者所有。请勿转载和采集!