从不同的工作表名称的Excel工作表中刮擦数据

我有许多excel电子表格与他们的数据。 我想find所有的Excel电子表格,去一个特定的工作表,并find一个特定的单元格。 每张电子表格对应于一名患者,其中一张工作表具有患者在特定细胞中接受的剂量。

然后,我可以绘制每张电子表格的价值随时间变化的情况。 但是,在一些工作簿中,工作表被称为不同的东西,或者处于不同的索引值。 是否有任何解决scheme,不涉及我手动重命名/移动1000+电子表格工作表我有,所以他们都在相同的格式?

这是我有的代码,如果他们都在工作表索引5。

#finds all excel files import os path = 'C:\Users\malonc01\Desktop\QC' files = os.listdir(path) files_txt = [i for i in files if i.endswith('.xlsx')] print files_txt # Gets data from excel files: import xlrd Data = [] Time = [] for i in files_txt: workbook = xlrd.open_workbook(str(path) + "\\" + str(i)) worksheet1 = workbook.sheet_by_index(5) Data.append(worksheet1.cell_value(10,8)) 

我能想到的唯一两个解决scheme是:

如果您在每个工作表中search特定单元格中的文本(每个工作表的格式完全相同,只需要我想要的工作表的名称/索引是不同的)。 然后使用符合此标准的工作表。

要么

如果工作表被称为X“或”Y,然后打开它,并find单元格的值。

这两个选项我都没有find办法让他们工作。 我希望有人能指出我正确的方向,以最简单的解决scheme。 谢谢!

首先,让我build议一个更好的方法来find你想扫描的Excel文件 –

 import glob files = glob.glob("C:\Users\User\Desktop\*.xlsx") 

至于你的问题,xlrd给你一个叫做sheets()的函数,它返回一个带有xlrd Sheet对象的列表。

你可以做的是获得Excel文件的列表,遍历它们,并为每个文件,你可以遍历它的工作表,并获得所需的数据。

 for filename in files: workbook = xlrd.open_workbook(filename ) for sheet in workbook.sheets(): Data.append(sheet.cell_value(10,8))