Python Openpyxl教程:拆分Excel表格、冻结窗格、提取行列数据
使用Python Openpyxl 拆分Excel表格并提取数据
本教程将演示如何使用Python的Openpyxl库来操作Excel文件,包括:
- 打开Excel文件* 冻结窗格* 获取指定行和列的数据* 根据特定列的值拆分表格到新的工作表
代码示例pythonimport openpyxl
打开Excel文件wb = openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\工作簿1.xlsx')
获取第一个工作表sheet = wb.worksheets[0]
冻结A1窗格sheet.freeze_panes = 'A2'
获取第二行所有单元格的内容row2_values = [cell.value for cell in sheet[2]]
获取第一列所有单元格的内容col1_values = [cell.value for cell in sheet['A']]
从第二行开始,将第一列单元格中重复内容的所有行拆分到新的工作表中for i, value in enumerate(col1_values[1:], start=2): if value != col1_values[i-2]: # 创建新的工作表 new_sheet = wb.create_sheet(title=value) # 写入第一行和第二行的数据 new_sheet.append(row2_values) new_sheet.append(col1_values[:2]) # 写入当前行的数据 new_sheet.append([cell.value for cell in sheet[i]])
保存Excel文件wb.save(r'C:\Users\Administrator\Desktop\工作簿1.xlsx')
代码解释
-
导入
openpyxl库:python import openpyxl -
打开Excel文件:
python wb = openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\工作簿1.xlsx')使用load_workbook()函数打开指定路径的Excel文件。 -
获取第一个工作表:
python sheet = wb.worksheets[0] -
冻结A1窗格:
python sheet.freeze_panes = 'A2'将A1单元格冻结,方便查看数据。 -
获取第二行所有单元格的内容:
python row2_values = [cell.value for cell in sheet[2]]使用列表推导式获取第二行所有单元格的值。 -
获取第一列所有单元格的内容:
python col1_values = [cell.value for cell in sheet['A']]使用列表推导式获取第一列所有单元格的值。 -
拆分表格:
python for i, value in enumerate(col1_values[1:], start=2): if value != col1_values[i-2]: # 创建新的工作表 new_sheet = wb.create_sheet(title=value) # 写入第一行和第二行的数据 new_sheet.append(row2_values) new_sheet.append(col1_values[:2]) # 写入当前行的数据 new_sheet.append([cell.value for cell in sheet[i]])遍历第一列的值,如果当前值与上一个值不同,则创建新的工作表,并将数据写入对应的工作表。 -
保存Excel文件:
python wb.save(r'C:\Users\Administrator\Desktop\工作簿1.xlsx')保存修改后的Excel文件。
总结
本教程介绍了使用Python Openpyxl库操作Excel文件的基本方法,包括打开文件、冻结窗格、获取行列数据以及拆分表格。你可以根据实际需求修改和扩展代码,实现更复杂的操作。
原文地址: https://www.cveoy.top/t/topic/fXaw 著作权归作者所有。请勿转载和采集!