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表格数据。

代码功能:

  1. 打开Excel文件并获取第一个工作表。
  2. 冻结A1窗格,方便查看数据。
  3. 获取第二行所有单元格的内容,作为新工作表的表头。
  4. 获取第一列所有单元格的内容,排除A1单元格。
  5. 遍历第一列的单元格内容,根据内容创建新的工作表。
    • 新工作表的名称为 '单元格内容 (出现次数 人)'。
    • 将第二行的内容复制到新工作表作为表头。
    • 将对应单元格内容的行复制到新工作表中。
  6. 删除新工作表中的空行。
  7. 删除名为 '表头 (1 人)' 的工作表。
  8. 保存修改后的Excel文件。

使用场景:

此代码可以用于将一个大的Excel表格按照某一列的内容拆分成多个小的表格,方便数据分析和处理。例如,可以将学生信息表按照班级拆分成多个班级表。

Python Openpyxl教程:拆分Excel表格数据到新工作表

原文地址: https://www.cveoy.top/t/topic/fXbM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录