使用Python Openpyxl 拆分 Excel 表格,按列内容分组并保留格式

本文介绍如何使用 Python 的 Openpyxl 库,将一个 Excel 表格按照指定列的内容进行拆分,并将每个分组的数据保存到新的 Excel 文件中。

功能亮点:

  • 根据指定名称的列进行分组* 保留原始表格的格式* 将每个分组数据保存到单独的 Excel 文件

**代码示例:**pythonimport osimport openpyxl

获取桌面路径desktop_path = os.path.join(os.path.expanduser('~'), 'Desktop')

创建一个文件夹用于存放拆分后的excel文件folder_name = '拆分后的excel文件'folder_path = os.path.join(desktop_path, folder_name)if not os.path.exists(folder_path): os.mkdir(folder_path)

打开要拆分的excel文件file_name = '要拆分的excel文件.xlsx'file_path = os.path.join(desktop_path, file_name)wb = openpyxl.load_workbook(file_path)

获取第一个工作表ws1 = wb.worksheets[0]

冻结第一个工作表窗格A1行的内容ws1.freeze_panes = 'A2'

从第二行开始获取名称为'表头'的列header_col = Nonefor col in ws1.iter_cols(min_row=2, max_row=2): for cell in col: if cell.value == '表头': header_col = col[0].column_letter break if header_col: break

if not header_col: print('未找到名称为表头的列!')else: # 遍历表头列中的每个单元格,生成新的工作表并写入数据 for cell in ws1[header_col][1:]: value = cell.value if value: # 创建新的工作表 ws_new = wb.create_sheet(title=value)

        # 写入窗格A1的内容            ws_new['A1'].value = ws1['A1'].value            ws_new['A1'].font = ws1['A1'].font            ws_new['A1'].alignment = ws1['A1'].alignment            ws_new['A1'].border = ws1['A1'].border            ws_new['A1'].fill = ws1['A1'].fill

        # 遍历表头列中相同内容的行,写入数据并复制格式            for row in ws1.iter_rows(min_row=3):                if row[header_col].value == value:                    ws_new.append([cell.value for cell in row])                    for cell in row:                        ws_new[cell.coordinate].font = cell.font                        ws_new[cell.coordinate].alignment = cell.alignment                        ws_new[cell.coordinate].border = cell.border                        ws_new[cell.coordinate].fill = cell.fill

        # 保存新的工作表到单独的excel文件中            file_name_new = f'{value}.xlsx'            file_path_new = os.path.join(folder_path, file_name_new)            wb_new = openpyxl.Workbook()            wb_new.active = ws_new            wb_new.save(file_path_new)

关闭excel文件wb.close()

使用方法:

  1. 将代码保存为 .py 文件,例如 excel_split.py。2. 将需要拆分的 Excel 文件命名为 要拆分的excel文件.xlsx,并放置在与代码文件相同的目录下。3. 运行代码,拆分后的文件会保存在桌面新建的 拆分后的excel文件 文件夹中。

代码说明:

  • 代码首先获取桌面路径,并创建一个名为“拆分后的excel文件”的文件夹,用于存放拆分后的文件。* 然后,代码打开名为“要拆分的excel文件.xlsx”的 Excel 文件,并获取第一个工作表。* 代码冻结第一个工作表窗格 A1 行的内容,方便查看数据。* 接着,代码从第二行开始遍历表格,查找名为“表头”的列。* 找到“表头”列后,代码遍历该列的所有单元格,根据单元格的值创建新的工作表。* 对于每个新的工作表,代码将原始工作表 A1 单元格的内容和格式复制到新工作表的 A1 单元格中。* 然后,代码遍历原始工作表的所有行,将与当前单元格值相同的行数据复制到新工作表中,并保留原始格式。* 最后,代码将每个新的工作表保存为单独的 Excel 文件,文件名为单元格的值,并关闭所有打开的 Excel 文件。

注意:

  • 代码中 '表头' 指的是需要进行拆分的列名,请根据实际情况修改。* 确保已安装 Openpyxl 库。可以使用 pip install openpyxl 命令进行安装。

希望本文能帮助您使用 Python Openpyxl 库轻松拆分 Excel 表格!

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

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

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