【发布时间】:2018-08-08 20:12:57
【问题描述】:
我是新手,如果我问错了,请原谅我的无知。我需要搜索工作簿以找到一个字符串,然后我需要从该字符串正下方的单元格中获取我的单元格值。当我找到该值时,我想获取它并更改 .xls 的文件名以保留文件名的前三个字母并将找到的值附加到它上面。它可以在工作表中的任何位置,没有标题,它更像是一个表格。任何帮助表示赞赏,我似乎无法找到答案。我在下面尝试查找我搜索的字符串的单元格值。我只是无法提取下面单元格中的数据。我有数千个这样的文件要查看,还有 2 个可能的字符串,虽然我的 python 代码还没有走那么远:
import os
from xlrd import open_workbook
path = "a_path"
for filename in os.listdir(path):
book = open_workbook("some_workbook")
for sheet in book.sheets():
for rowidx in range(sheet.nrows):
row = sheet.row(rowidx)
for colidx, cell in enumerate(row):
if cell.value == "String" :
print (sheet.name)
print (colidx)
print (rowidx)
print (cell.value)
新代码。我走得更远了,但现在我已经到了下一行,我找不到限制列的方法。
import os
import re
import xlrd
def rename_excel_files():
path = filename
for filename in os.listdir(path):
try:
book = xlrd.open_workbook(path + filename)
except:
pass
try:
sheet = book.sheet_by_index(0)
for rowidx in range(sheet.nrows):
row = sheet.row(rowidx)
for colidx, cell in enumerate(row):
m = re.search(r' string ', str(cell.value))
if m:
nextrow = sheet.row(rowidx + 1)
for i, cell2 in enumerate(nextrow):
newfileERnbr = (str(cell2.value).split('.')[0])
print (filename + newfileERnbr)
except:
pass
rename_excel_files()
【问题讨论】: