gpt4 book ai didi

python - 选择具有相似名称和不同索引的电子表格

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:54 24 4
gpt4 key购买 nike

我需要在阅读大量 Excel 电子表格时选择工作表的建议。我工作的公司已经拥有一个包含 100 多个 Excel 电子表格的大型数据库,我可以在其中搜索特定工作表中的值。问题在于电子表格的名称和索引有所不同,尤其是旧文档时。我已经尝试过 sheet_by_idex(6)sheet_by_name('name'),但我似乎无法做到正确。

搜索 sheet_by_index(6) 时,问题是某些文档中的索引发生了变化,例如从索引 5 变为索引 6。另一个问题是它们还有隐藏的工作表,我将其隐藏不确定是否会中断或只是成为最后一个索引。

搜索 sheet_by_name('name') 时,问题在于大多数情况下图纸名称称为“Ship Res. Coeff WL1”,但也可能称为“Ship Res. Coeff WL1” .Coeff WL2B”在其他电子表格中。除此之外,每个电子表格中都有一个类似的工作表,名称为“Ship Res. Coeff WL1”(如果是这些文档之一,则为 WL2B)

这是我的代码,其中包含 try except 函数,让我注意到工作表的选择是问题所在。

def find_Froudnumbers():
Fdict = {}
for filename in file_list:
try:
wb = xlrd.open_workbook(os.path.join(start_dir, filename))
sheet = wb.sheet_by_index('6')
Teljar = 25
Flist = []
for Frouden in xrange(25, sheet.nrows):
Frouden = sheet.cell_value(int(Teljar), 2)
Flist.append(Frouden)
Teljar += 1
Fdict[filename] = [Flist]
except xlrd.XLRDError:
print 'Problem with finding Froudenumbers from:', filename
return Fdict # map(str.strip(' '), Frouden)
Fdict = find_Froudnumbers()
print Fdict

如果需要进一步解释,请随时询问。非常感谢任何建议。

最佳答案

from xlrd import open_workbook

def find_Froudnumbers():
Fdict = {}
for filename in file_list:
try:
wb = xlrd.open_workbook(os.path.join(start_dir, filename))

# this will have a problem if there is no similar sheet

srch_string = 'Ship Res. Coef'
for sheet_index in range(wb.nsheets):
first_sheet = wb.sheet_by_index(sheet_index)
second_sheet = wb.sheet_by_index(sheet_index + 1)
if (srch_string in first_sheet.name and
srch_string in second_sheet.name):

# do something with second_sheet

Teljar = 25
Flist = []
for Frouden in xrange(25, sheet.nrows):
Frouden = sheet.cell_value(int(Teljar), 2)
Flist.append(Frouden)
Teljar += 1
Fdict[filename] = [Flist]
except xlrd.XLRDError:
print 'Problem with finding Froudenumbers from:', filename
return Fdict # map(str.strip(' '), Frouden)
Fdict = find_Froudnumbers()
print Fdict

这应该很接近,不幸的是我没有时间测试它,但要小心,因为只有在它之前有一本类似的书时这才有效......也许你可以将其调整得更灵活

关于python - 选择具有相似名称和不同索引的电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18146238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com