如何使用python循环浏览多个excel工作表并对数据进行排序?

如何使用python循环浏览多个excel工作表并对数据进行排序?,python,excel,xlrd,Python,Excel,Xlrd,从web下载电子表格后,需要使用python 2.7对5个工作表中的4个进行排序。我已经能够拼凑代码下载并保存文件,然后对其进行排序。然而,我已经能够弄清楚如何在多张图纸之间循环 代码 import os import os.path import urllib import xlwt from xlrd import open_workbook destination = 'C:\Users\Python' if os.path.exists(destination) is False:

从web下载电子表格后,需要使用python 2.7对5个工作表中的4个进行排序。我已经能够拼凑代码下载并保存文件,然后对其进行排序。然而,我已经能够弄清楚如何在多张图纸之间循环

代码

import os
import os.path
import urllib
import xlwt
from xlrd import open_workbook

destination = 'C:\Users\Python'
if os.path.exists(destination) is False:
    os.mkdir(destination)

urllib.urlretrieve("http://www.eia.gov/dnav/pet/xls/PET_PRI_FUT_S1_D.xls", os.path.join(destination, "test.xls"))

target_column = 0     

book = open_workbook('test.xls')
sheet = book.sheets()[1]
data = [sheet.row_values(i) for i in xrange(sheet.nrows)]
labels = data[0]    # Don't sort our headers
data = data[1:]     # Data begins on the second row
data.sort(key=lambda x: x[target_column], reverse=True)

bk = xlwt.Workbook()
sheet = bk.add_sheet(sheet.name)

for idx, label in enumerate(labels):
     sheet.write(0, idx, label)

for idx_r, row in enumerate(data):
    for idx_c, value in enumerate(row):
        sheet.write(idx_r+1, idx_c, value)

bk.save('result.xls')

您可以在图纸中循环,而不是抓住一张图纸

for sheet in book.sheets():
而不是

sheet = book.sheets()[1]

这个问题已经被提出和回答了@谢谢,谢谢。我很感激。我使用了这行代码并尝试执行以下操作:
对于book.sheets()中的工作表:对于范围(1,5)中的工作表:
,以便能够循环浏览特定的工作表,但它不起作用。有没有办法指定工作表的范围?@Rsaha Do
for sheet in book.sheets()[1:5]:
@AnEpicPerson非常感谢。@Rsaha请注意,序列从零开始,切片运算符的第二个参数指的是索引1小于它,例如,
[1,2,3,4,5][1:5]
返回[2,3,4]“一位知情人士明白了。非常感谢你。