使用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

Python拆分Excel表格:按列内容分组并保留格式

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

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