的冻结和标题行。

以下是一个示例代码,假设原始的Excel文件名为“example.xlsx”:

import openpyxl

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

# 获取第一个工作表
sheet = workbook.worksheets[0]

# 冻结窗格
sheet.freeze_panes = 'A3'

# 获取第二行内容
header_row = sheet[2]
header_values = [cell.value for cell in header_row]

# 获取所有姓名
name_column = header_values.index('姓名')
name_values = set([cell.value for cell in sheet.iter_cols(min_row=3, max_col=1, max_row=sheet.max_row)][0])

# 生成新的表格
for name in name_values:
    # 创建新的工作表
    new_sheet = workbook.create_sheet(title=name)
    
    # 冻结窗格和添加标题行
    new_sheet.freeze_panes = 'A2'
    new_sheet.append(header_values)
    
    # 拷贝所有该姓名的行到新表格
    for row in sheet.iter_rows(min_row=3, values_only=True):
        if row[name_column] == name:
            new_sheet.append(row)
    
# 保存修改后的Excel文件
workbook.save('example_split.xlsx')

该代码首先打开原始Excel文件,并获取第一个工作表。然后,它通过设置freeze_panes属性来冻结窗格,并获取第二行的内容。接下来,它找到所有不同的姓名,并为每个姓名创建一个新的工作表。对于每个新的工作表,它设置freeze_panes属性和标题行,并将所有该姓名的行拷贝到新表格中。最后,它保存修改后的Excel文件

利用python30以上的版本将excel表格拆分成若干个新表首先冻结窗格筛选第二行按照姓名把所有行内容生成新的表格生成的新表格按照筛选的姓名命名并带有窗格

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

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