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

这是我的代码,但是有很多问题,我的想法是:
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来分割。

我觉得你要处理数据的话最好用数据库,把excel中的数据读入到数据库中再处理就很轻松了。用python本身支持的sqlite就够了,才800多兆而已。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-24
行列格式,大小是不是有问题
相似回答