excel 的 '分身之术' ----- 一个 excel 拆分多个 excel

最近在做一个项目时遇到处理 excel 的问题,一个 excel 有将近一万条数据,需要将 excel 里的内容按 2000 行进行拆分。并保持拆分的每个 excel 保持标题不变。

此处为 excel 的母版
excel 的 '分身之术'  ----- 一个 excel 拆分多个 excel

excel 的 '分身之术'  ----- 一个 excel 拆分多个 excel

上代码 😁 😆

import xlrd
import xlwt

limit = 2000
readbook = "C:\\Users\\lenovo\\Desktop\\HR\\first\\过账.xls" #原始文件路径
savebook = "C:\\Users\\lenovo\\Desktop\\HR\\first" #要保存的目录
data = xlrd.open_workbook(readbook)
# 获取sheet
table = data.sheets()[0]  # 获取第一个sheet的所有数据

# 行数
nrows = table.nrows - 6
# 列数
ncols = table.ncols

sheets = nrows / limit  # 总共需要多少excel

if not sheets.is_integer():  # 如果不是整除则需要+1
    sheets = sheets + 1

title_row0,title_row1,title_row2,title_row3,title_row4,title_row5 = table.row_values(0),table.row_values(1),table.row_values(2),table.row_values(3),table.row_values(4),table.row_values(5) # 获取标题

for i in range(0, int(sheets)):
    workbook = xlwt.Workbook(encoding='ascii')
    worksheet = workbook.add_sheet(sheetname="0")#设置sheet名称
    for col in range(0,ncols):#写标题
        worksheet.write(0, col, title_row0[col])
        worksheet.write(1, col, title_row1[col])
        worksheet.write(2, col, title_row2[col])
        worksheet.write(3, col, title_row3[col])
        worksheet.write(4, col, title_row4[col])
        worksheet.write(5, col, title_row5[col])
    for row in range(6, limit+6):#每次循环limit行
        newRow = row+limit*i
        if newRow < nrows + 6:
            row_content = table.row_values(newRow)
            for col in range(0, ncols):
                worksheet.write(row, col, row_content[col])
    workbook.save(savebook+"/"+str(i+1)+".xls")

生成了五个子 excel,我的标题为六行,生成的 excel 共 2006 行。
excel 的 '分身之术'  ----- 一个 excel 拆分多个 excel

第一个 excel
excel 的 '分身之术'  ----- 一个 excel 拆分多个 excel
第一个 excel 的末尾
excel 的 '分身之术'  ----- 一个 excel 拆分多个 excel

第二个 excel
excel 的 '分身之术'  ----- 一个 excel 拆分多个 excel
第二个 excel 的末尾
excel 的 '分身之术'  ----- 一个 excel 拆分多个 excel