把工作簿中按员工姓名拆分不同的工作表
时间: 2024-04-14 16:26:09 浏览: 11
要将工作簿按照员工姓名拆分为不同的工作表,您可以使用openpyxl库和一些逻辑来实现。以下是一个示例代码:
```python
from openpyxl import load_workbook, Workbook
# 加载工作簿
workbook = load_workbook('input.xlsx')
# 获取工作簿中的所有工作表名称
sheet_names = workbook.sheetnames
# 创建一个字典来存储每个员工的工作表
workbooks = {}
# 遍历每个工作表
for sheet_name in sheet_names:
# 获取当前工作表
sheet = workbook[sheet_name]
# 获取员工姓名所在的列索引
name_column = 'A' # 假设员工姓名在第一列
# 遍历每一行数据,根据员工姓名拆分到不同的工作表
for row in sheet.iter_rows(min_row=2, values_only=True):
name = row[0] # 假设员工姓名在第一列
if name not in workbooks:
# 如果该员工的工作表还不存在,则创建一个新的工作表
workbooks[name] = Workbook()
new_sheet = workbooks[name].active
new_sheet.title = sheet_name
# 拷贝原始工作表的标题行
for header_row in sheet.iter_rows(min_row=1, max_row=1, values_only=True):
new_sheet.append(header_row)
# 将当前行数据拷贝到对应的工作表
new_sheet = workbooks[name].active
new_sheet.append(row)
# 保存每个员工的工作表
for name, workbook in workbooks.items():
workbook.save(f'{name}.xlsx')
```
此代码将输入文件中的每个工作表按照员工姓名拆分为多个工作簿,并将每个员工的工作簿保存为以其姓名命名的文件(例如,John.xlsx、Jane.xlsx等)。请根据实际情况修改代码,以适应您的需求。