把一个工作簿按照不同人名拆分成多张工作簿
时间: 2023-10-26 12:07:25 浏览: 46
要将一个工作簿按照不同的人名拆分成多个工作簿,您可以使用openpyxl库以及一些逻辑来实现。以下是一个示例代码:
```python
from openpyxl import load_workbook, Workbook
# 加载工作簿
workbook = load_workbook('input.xlsx')
# 获取要拆分的工作表
sheet = workbook['Sheet1']
# 获取人名所在的列索引
name_column = 'A' # 假设人名在第一列
# 创建一个字典来存储每个人的工作簿
workbooks = {}
# 遍历每一行数据,根据人名拆分到不同的工作簿
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.title
# 拷贝原始工作表的标题行
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等)。请根据实际情况修改代码,以适应您的需求。