Python在实际工作中的运用-拆分Excel表格

每次遇到表格按地区、按行数进行拆分都特别麻烦,每次都搞的头昏眼花,还容易出错,现在有了Python实在是各位“表哥”们的福音,下面我们就按行数和sheet两种场景来说明吧。

首先需要安装 openpyxl 和 pandas

pip install openpyxl pandas

按行数拆分.py

import openpyxl
import os

xlsfile="E:/表格目录/带拆分表格.xlsx"
# 加载现有的Excel文件
workbook = openpyxl.load_workbook(xlsfile)

# 按行拆分方法:split_excel_by_rows(待拆分表格路径,拆分行数)
def split_excel_by_rows(filename, split_rowsnum):
    wb = openpyxl.load_workbook(filename)
    sheet = wb.active
    total_rowsnum = sheet.max_row
    num_files = (total_rowsnum // split_rowsnum) + 1

    for i in range(num_files):
        start_row = i * split_rowsnum + 1
        end_row = min((i + 1) * split_rowsnum, total_rowsnum)
        new_wb = openpyxl.Workbook()
        new_sheet = new_wb.active
        for row in sheet.iter_rows(min_row=start_row, max_row=end_row, values_only=True):
            new_sheet.append(row)
        new_wb.save(f'{os.path.dirname(xlsfile)}/split_{i+1}.xlsx')
        print(f'split_{i+1}.xlsx 保存完毕,保存路径:{os.path.dirname(xlsfile)}')

# 运行拆分方法
split_excel_by_rows(xlsfile, 5000)

按sheet拆分.py

import os.path
import openpyxl
import pandas as pd

# 实例化DataFrame对象,用于保存单个sheet内容
sheetdf = pd.DataFrame()

xlsfile = f"E:/表格目录/带拆分表格.xlsx"

# 获得带拆分表格的sheet名称列表
wb = openpyxl.load_workbook(xlsfile)
sheets = wb.sheetnames

# 每个sheet内容循环生成单个Excel文件
for sheet in sheets:
    sheetdf = pd.read_excel(xlsfile , sheet)
    savefile = f'{os.path.dirname(xlsfile)}/split_{sheet}.xlsx'
    sheetdf.to_excel(savefile,sheet_name=sheet,index=False,header=True)

print(f'拆分完毕,已保存至{os.path.dirname(xlsfile)}')

你可能感兴趣的:(Python,excel,python)