Python自动化拆分Excel表格:openpyxl库实战教程
使用Python openpyxl库拆分Excel表格
本文将介绍如何使用Python的openpyxl库,根据指定列的内容,将一个Excel表格拆分成多个新的Excel文件。
功能需求
- 获取Excel表格的第一个工作表。2. 冻结第一个工作表窗格A1行的内容。3. 找到名为'表头'的列,并获取该列所有不同的值。4. 针对'表头'列的每个不同值,创建一个新的工作表,并将原表格中所有该列内容与该值相同的行复制到新工作表中。5. 将原表格中窗格A1的内容复制到每个新工作表中。6. 将每个新工作表保存为单独的Excel文件,文件名以'表头'列的对应值命名。7. 将所有新生成的Excel文件保存到桌面上的'新文件夹'中。
代码实现pythonimport osimport openpyxlfrom openpyxl.utils import get_column_letterfrom openpyxl.styles import NamedStyle
创建一个新的样式,用于冻结窗格freeze_style = NamedStyle(name='freeze_style')freeze_style.freeze_panes = 'A2'
打开原始excel文件wb = openpyxl.load_workbook('原始文件.xlsx')
获取第一个工作表ws1 = wb.worksheets[0]
冻结窗格ws1['A2'].style = freeze_style
获取表头的列header_col = 'A'for col in range(1, ws1.max_column+1): if ws1.cell(row=1, column=col).value == '表头': header_col = get_column_letter(col) break
遍历表头列中的所有不同值unique_values = set(ws1[header_col][1:].values)for value in unique_values: # 创建一个新的工作表 new_ws = wb.create_sheet(title=value)
# 写入窗格A1的内容 new_ws['A1'] = ws1['A1'].value
# 复制符合条件的行 for row in range(2, ws1.max_row+1): if ws1.cell(row=row, column=ws1[header_col][1].column).value == value: for col in range(1, ws1.max_column+1): new_ws.cell(row=row-1, column=col, value=ws1.cell(row=row, column=col).value).style = ws1.cell(row=row, column=col).style
# 保存新的工作表到单独的excel文件中 if not os.path.exists('新文件夹'): os.makedirs('新文件夹') wb_new = openpyxl.Workbook() wb_new.remove(wb_new.active) wb_new.add(new_ws) wb_new.save(f'新文件夹/{value}.xlsx')
保存修改后的原始excel文件wb.save('原始文件.xlsx')
使用说明
- 安装openpyxl库:
pip install openpyxl2. 将代码保存为Python文件(例如split_excel.py)。3. 将需要拆分的Excel文件命名为原始文件.xlsx,并将其与Python文件放在同一目录下。4. 运行Python脚本。
运行脚本后,将会在桌面创建一个名为'新文件夹'的文件夹,拆分后的Excel文件将保存在该文件夹内。
总结
本教程介绍了如何使用Python的openpyxl库进行Excel表格拆分,并提供了详细的代码示例和使用说明。希望本教程能帮助你提高办公效率,实现自动化办公的目标。
原文地址: https://www.cveoy.top/t/topic/fW7A 著作权归作者所有。请勿转载和采集!