Python3.8 Excel表格拆分:按列内容分组并保留格式
Python3.8 Excel表格拆分教程:按列内容分组并保留格式
本教程将教你如何使用Python3.8和openpyxl库,将一个Excel表格按照指定列的内容拆分成多个新的Excel文件。
功能:
- 读取一个Excel文件,并获取所有工作表。* 冻结每个工作表的首行和首列。* 找到名为'表头'的列,并根据该列的内容将表格数据进行分组。* 为每个分组创建一个新的Excel文件,文件名以分组内容命名。* 将每个分组的数据复制到对应的Excel文件中,并保留原始格式。* 将所有新创建的Excel文件保存在桌面上的'拆分后工作表'文件夹中。
**代码:**pythonimport osimport shutilimport openpyxl
获取桌面路径desktop_path = os.path.join(os.path.expanduser('~'), 'Desktop')
创建保存拆分后工作表的文件夹split_folder = os.path.join(desktop_path, '拆分后工作表')if not os.path.exists(split_folder): os.mkdir(split_folder)
打开待拆分的工作簿wb = openpyxl.load_workbook('待拆分工作簿.xlsx')
获取所有工作表sheets = wb.sheetnames
遍历每个工作表for sheet in sheets: # 打开工作表 ws = wb[sheet]
# 冻结窗格A1列的内容 ws.freeze_panes = 'A2'
# 获取表头列 header_column = None for cell in ws[2]: if cell.value == '表头': header_column = cell.column_letter break
if header_column is None: continue # 没有找到表头列,跳过当前工作表
# 创建新的工作簿 new_wb = openpyxl.Workbook()
# 复制窗格A1的内容到新的工作表 new_ws = new_wb.active new_ws.title = sheet new_ws['A1'].value = ws['A1'].value new_ws['A1'].font = ws['A1'].font new_ws['A1'].alignment = ws['A1'].alignment
# 复制表头列中所有相同内容的行到新的工作表 current_row = 2 current_group = None for cell in ws[header_column]: if cell.value != current_group: current_group = cell.value group_start_row = current_row current_row += 1 if current_row > ws.max_row or ws[header_column + str(current_row)].value != current_group: group_end_row = current_row - 1 new_ws.append(ws[group_start_row:group_end_row]) for row in new_ws[group_start_row:group_end_row]: for cell in row: cell.font = ws[cell.coordinate].font cell.alignment = ws[cell.coordinate].alignment
# 保存新的工作簿 new_file_name = str(current_group) + '.xlsx' new_file_path = os.path.join(split_folder, new_file_name) new_wb.save(new_file_path)
关闭待拆分的工作簿wb.close()
使用说明:
- 确保已经安装了
openpyxl库。如果没有安装,请使用以下命令安装:bash pip install openpyxl2. 将待拆分的Excel文件命名为待拆分工作簿.xlsx,并将其放在与Python脚本相同的目录下。3. 运行Python脚本。脚本会自动在桌面创建一个名为'拆分后工作表'的文件夹,并将拆分后的Excel文件保存在其中。
注意:
- 代码中的
'表头'指的是用于分组的列名,请根据实际情况修改。* 代码会保留原始Excel文件中的格式,包括字体、颜色、对齐方式等。
希望本教程能够帮助你使用Python3.8轻松拆分Excel表格!
原文地址: https://www.cveoy.top/t/topic/fW7d 著作权归作者所有。请勿转载和采集!