PYTHON-EXCEL切分

#!/usr/bin/env python3
# encoding:utf-8
import xlrd
import xlwt
import PySimpleGUI as sg
import easygui as eg

if __name__ == '__main__':
msg = "请填写以下信息"
title = "配置"
fieldNames = [" *原始文件路径", " *要保存的目录", " *请输入拆分行数"]
fieldValues = []
fieldValues = eg.multenterbox(msg, title, fieldNames)
while True:
# 点击取消按钮操作
if fieldValues == None:
break
# 报错提示初始值
errmsg = ""
for i in range(len(fieldNames)):
option = fieldNames[i].strip()
if fieldValues[i].strip() == "" and option[0] == "*":
errmsg += ('【%s】为必填项。\n\n' % fieldNames[i])
# 无报错提示,退出程序,否则,报错提示,重新进入输入界面
if errmsg == "":
break
fieldValues = eg.multenterbox(errmsg, title, fieldNames, fieldValues)
# print(fieldValues)

readbook = fieldValues[0] #原始文件路径
# readbook=input("请输入原始文件路径:D:\shicanyu\Desktop\1.xlsx")
savebook = fieldValues[1] #要保存的目录
# savebook = input("请输入要保存的目录:D:\shicanyu\Desktop\chaifen")
data = xlrd.open_workbook(readbook)
limit_str =fieldValues[2]
limit=int(limit_str)
# 获取sheet
table = data.sheets()[0]#获取第一个sheet的所有数据

# 行数
nrows = table.nrows
# 列数
ncols = table.ncols
sheets = nrows / limit#总共需要多少excel
if not sheets.is_integer():#如果不是整除则需要+1
sheets = sheets + 1
title_row = table.row_values(0)#获取首行的标题
for i in range(0, int(sheets)):
workbook = xlwt.Workbook(encoding='GBK')
worksheet = workbook.add_sheet(sheetname="0")#设置sheet名称
for col in range(0,ncols):#写首行的标题
worksheet.write(0, col, title_row[col])
for row in range(1, limit+1):#每次循环limit行
newRow = row+limit*i
if newRow < nrows:
row_content = table.row_values(newRow)
for col in range(0, ncols):
worksheet.write(row, col, row_content[col])
workbook.save(savebook+"\\"+str(i)+".xls")
sg.popup('拆分完成!')

posted on 2021-08-30 10:00  AaCan  阅读(94)  评论(0)    收藏  举报

导航