以下是利用 Python 3.0 以上版本将 Excel 表格拆分成单独的新表,并按照姓名生成新的表格的代码:

import openpyxl

# 打开原始 Excel 文件
wb = openpyxl.load_workbook('original_file.xlsx')

# 获取所有工作表名字
sheet_names = wb.sheetnames

# 循环遍历每一个工作表
for sheet_name in sheet_names:
    # 打开当前工作表
    ws = wb[sheet_name]

    # 获取第二行的所有单元格
    row_two = ws[2]

    # 遍历第二行单元格,找到姓名这一列
    for cell in row_two:
        if cell.value == '姓名':
            name_column = cell.column_letter
            break

    # 创建一个字典,用于存储每个姓名对应的行内容
    name_rows = {}

    # 遍历所有行,将每一行按照姓名存储到字典中
    for row in ws.iter_rows(min_row=3):
        name = row[int(name_column) - 1].value
        if name not in name_rows:
            name_rows[name] = []
        name_rows[name].append(row)

    # 将每个姓名对应的行内容生成新的表格
    for name, rows in name_rows.items():
        # 创建一个新的工作表
        new_sheet = wb.create_sheet(title=name)

        # 复制第一行的格式
        for i in range(1, ws.max_column+1):
            new_sheet.cell(row=1, column=i)._style = ws.cell(row=1, column=i)._style

        # 复制每个姓名对应的行内容
        for i, row in enumerate(rows):
            for j, cell in enumerate(row):
                new_sheet.cell(row=i+2, column=j+1).value = cell.value
                new_sheet.cell(row=i+2, column=j+1)._style = cell._style

    # 删除原始工作表
    wb.remove(ws)

# 保存新生成的 Excel 文件
wb.save('new_file.xlsx')

这段代码将会读取一个名为original_file.xlsx的 Excel 文件,然后将其拆分成多个单独的 Excel 表格。每个表格的命名方式为该表格中姓名一列对应的姓名。生成的新表格会保留原表格中窗格行 A1 的格式。最后,新的 Excel 文件将会保存为new_file.xlsx

Python 3.0+ Excel表格拆分:按姓名生成单独表格

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

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