python拆分excel的sheet为单文件_如何用python3 将一个大的excel文件(.xlsx)分割为多个excel的文件,sheet 不变。以下是我的代码:...

这是我的代码,但是有很多问题,我的想法是:1.forname_xlsinrange(0,num_xls):workbook_created=xlsxwriter.Workbook()我尝试用for来创建多个excel文件,但是不可以用,请问朋友们我...

这是我的代码,但是有很多问题,我的想法是:

1. for name_xls in range(0, num_xls):

workbook_created = xlsxwriter.Workbook()

我尝试用for 来创建多个excel文件,但是不可以用,请问朋友们我该如何一次性创建多个文件呢?

2. 我是一个python新手,如果大家能帮我解决问题或者提供一些自己的想法我将感激不尽!

3. 以下代码有问题,我觉得关键在于并没有像我想象中创建出这样的多个excel文件。

import xlsxwriter

import xlrd

import xlwt

num_xls = 10

readbook = input('input excel read path:')#输入读取文件的路径

limit = input('input limit number:') #输入分割的限制

if limit == '':

limit = 100 # 默认按100条拆分

print ('拆分数量: ' + limit)

limit = int(limit)

data = xlrd.open_workbook(readbook)

table = data.sheets()[0] # 获取sheet

nrows = table.nrows # 行数

ncols = table.ncols # 列数

sheets = nrows / limit

#workbook_created = xlwt.Workbook(encoding='ascii')

def frange(start, stop, step=1):

i = start

while i < stop:

yield i

i += step

for name_xls in range(0, num_xls):

workbook_created = xlsxwriter.Workbook()

for i in frange(0, sheets):

worksheet = workbook_created.add_worksheet(str(i))

for row in range(name_xls * limit, (name_xls+1) * limit - 1):

row_content = table.row_values(row + i)

for col in range(0, ncols):

worksheet.write(row, col, row_content[col])

workbook.save(workbook_created)

运行之后:

File "C:\Users\shuyu\Anaconda3\lib\site-packages\xlwt\Workbook.py", line 710, in save

doc.save(filename_or_stream, self.get_biff_data())

File "C:\Users\shuyu\Anaconda3\lib\site-packages\xlwt\Workbook.py", line 680, in get_biff_data

self.__worksheets[self.__active_sheet].selected = True

IndexError: list index out of range

由于特殊原因,有一个excel文件,近800多M,里面都是生物基因工程的数据, 需要把这个大的excel分割成多个(10个以上)小一点的excel,然后再处理数据。

所以我尝试拿python来分割。

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值