功能:根据输入excel表的id号段进行分表,可以重复输入多个号段。
代码实现:用pandas的read_excel里的skiprows与nrows来实现。
import pandas as pd
from time import *
begin_time = time() #程序运行时间
dirPath = r'E:\Work\Test\\'
dirPath2 = r'E:\Work\Test\表格拆分\\'
path = dirPath + '3473666-3482675.xlsx' #excel的路径
orgName = pd.read_excel(path)
SerialNumber_list = list(orgName['流水号'].drop_duplicates())
BarCode_list = list(orgName['barcode'].drop_duplicates())
BarCode = BarCode_list[0]
SerialNumber = SerialNumber_list[0]
data_storage = []
bol = 'y'
while bol != 'n':
arr = []
start_serialnumber = int(input('起始流水号:'))
end_serialnumber = int(input('终止流水号:'))
start_number = (start_serialnumber-SerialNumber)*2
all_number = (end_serialnumber - start_serialnumber +1)*2
arr.append(start_number)
arr.append(all_number)
arr.append(start_serialnumber)
arr.append(end_serialnumber)
data_storage.append(arr)
bol = input('输入n停止,任意键继续输入:')
#获取连续数字
def SequenceNums(sta,end):
numbers = []
for i in range(sta,end+1):
numbers.append(i)
return numbers
#循环遍历输出表格
for i in range(data_storage.__len__()):
tempdata = pd.read_excel(path,dtype='object', skiprows=SequenceNums(1,data_storage[i][0]), nrows=data_storage[i][1])
writer = pd.ExcelWriter(dirPath2 + str(data_storage[i][2])+'-'+str(data_storage[i][3])+'-'+ '.xlsx')
tempdata.to_excel(writer, index=False)
writer.save()
writer.close()
end_time = time() #程序运行结束时间
run_time = end_time - begin_time
print('程序运行总时间:',run_time)