Python Openpyxl教程:拆分Excel表格数据到新工作表
import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\工作簿1.xlsx')
# 获取第一个工作表
sheet = wb.worksheets[0]
# 冻结A1窗格
sheet.freeze_panes = 'A2'
# 获取第二行所有单元格的内容
row2_values = []
for cell in sheet[2]:
row2_values.append(cell.value)
print(row2_values)
# 获取第一列所有单元格的内容
col1_values = [cell.value for cell in sheet['A']]
col1_values = col1_values[1:] # 排除A1单元格
# 拆分第一列单元格内容到新的工作表
unique_values = set(col1_values)
for value in unique_values:
count = col1_values.count(value)
new_sheet_name = f'{value} ({count} 人)'
new_sheet = wb.create_sheet(title=new_sheet_name)
new_sheet.append(row2_values)
for row_num, cell_value in enumerate(col1_values):
if cell_value == value:
new_sheet.append([cell.value for cell in sheet[row_num + 2]])
# 删除新工作表中的空行
for row in new_sheet.iter_rows():
if all([cell.value is None for cell in row]):
new_sheet.delete_rows(row[0].row)
# 删除工作表名字为'表头 (1 人)'的工作表
if '表头 (1 人)' in wb.sheetnames:
wb.remove(wb['表头 (1 人)'])
# 保存Excel文件
wb.save(r'C:\Users\Administrator\Desktop\工作簿1.xlsx')
这篇文章介绍了如何使用Python的Openpyxl库来拆分Excel表格数据。
代码功能:
- 打开Excel文件并获取第一个工作表。
- 冻结A1窗格,方便查看数据。
- 获取第二行所有单元格的内容,作为新工作表的表头。
- 获取第一列所有单元格的内容,排除A1单元格。
- 遍历第一列的单元格内容,根据内容创建新的工作表。
- 新工作表的名称为 '单元格内容 (出现次数 人)'。
- 将第二行的内容复制到新工作表作为表头。
- 将对应单元格内容的行复制到新工作表中。
- 删除新工作表中的空行。
- 删除名为 '表头 (1 人)' 的工作表。
- 保存修改后的Excel文件。
使用场景:
此代码可以用于将一个大的Excel表格按照某一列的内容拆分成多个小的表格,方便数据分析和处理。例如,可以将学生信息表按照班级拆分成多个班级表。
原文地址: https://www.cveoy.top/t/topic/fXbM 著作权归作者所有。请勿转载和采集!