利用python30以上的版本将excel表格拆分成单独的新表首先冻结窗格A1筛选第二行并找到姓名这一列按照姓名把所有相同姓名的行内容生成新的表格生成的新表格按照筛选的姓名命名并带有原表中冻结的窗格
A1中的标题行。
以下是一个示例代码,可以实现此功能:
import openpyxl
# 打开原表格
wb = openpyxl.load_workbook('example.xlsx')
ws = wb.active
# 冻结窗格A1
ws.freeze_panes = 'A2'
# 找到姓名列的列号
name_col = None
for col in range(1, ws.max_column + 1):
if ws.cell(row=2, column=col).value == '姓名':
name_col = col
break
if name_col is None:
raise ValueError('找不到姓名列')
# 根据姓名生成新表格
name_to_ws = {}
for row in ws.iter_rows(min_row=2):
name = row[name_col - 1].value
if name not in name_to_ws:
# 创建新表格,并复制标题行
new_ws = wb.create_sheet(title=name)
new_ws.append([cell.value for cell in ws[1]])
name_to_ws[name] = new_ws
# 复制当前行
name_to_ws[name].append([cell.value for cell in row])
# 保存新表格
wb.save('split.xlsx')
这个代码假设原表格第二行是标题行,并且姓名列是存在的。它会根据姓名列找到所有相同姓名的行,生成新表格,并在新表格中复制标题行和所有该姓名的行。最后它会保存所有新表格到一个名为“split.xlsx”的文件中
原文地址: https://www.cveoy.top/t/topic/gptl 著作权归作者所有。请勿转载和采集!