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()

使用说明:

  1. 确保已经安装了openpyxl库。如果没有安装,请使用以下命令安装: bash pip install openpyxl 2. 将待拆分的Excel文件命名为待拆分工作簿.xlsx,并将其放在与Python脚本相同的目录下。3. 运行Python脚本。脚本会自动在桌面创建一个名为'拆分后工作表'的文件夹,并将拆分后的Excel文件保存在其中。

注意:

  • 代码中的'表头'指的是用于分组的列名,请根据实际情况修改。* 代码会保留原始Excel文件中的格式,包括字体、颜色、对齐方式等。

希望本教程能够帮助你使用Python3.8轻松拆分Excel表格!

Python3.8 Excel表格拆分:按列内容分组并保留格式

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

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