Python Excel表格拆分:按姓名生成独立表格
利用Python3.0以上版本将Excel表格拆分成单独的新表,筛选第二行并找到姓名这一列,按照姓名把所有相同姓名的行内容生成新的表格,生成的新表格按照筛选的姓名命名,并且带格式复制原表中的窗格行A1内容
以下是利用openpyxl模块实现的代码:
import openpyxl
# 打开原始表格
wb = openpyxl.load_workbook('原表格.xlsx')
ws = wb.active
# 获取所有不同的姓名
names = set()
for row in ws.iter_rows(min_row=2, max_row=2, values_only=True):
for cell in row:
if cell.value == '姓名':
for r in ws.iter_rows(min_row=3, values_only=True):
names.add(r[cell.column - 1])
# 根据姓名生成新表格
for name in names:
new_wb = openpyxl.Workbook()
new_ws = new_wb.active
new_ws.title = name
# 复制格式
for row in ws.iter_rows(min_row=1, max_row=2):
for cell in row:
new_ws[cell.coordinate]._style = cell._style
# 复制内容
for row in ws.iter_rows(min_row=3, values_only=True):
if row[1] == name:
new_ws.append(row)
# 保存新表格
new_wb.save(f'{name}.xlsx')
需要注意的是,这个代码只能处理第二行中有且仅有一个'姓名'列的情况。如果有多个列的话,需要根据实际情况修改代码。同时,生成的新表格只复制了第一行和第二行的格式,如果需要复制更多的格式,也需要根据实际情况修改代码。
原文地址: https://www.cveoy.top/t/topic/ovjR 著作权归作者所有。请勿转载和采集!