我有一个文件列表和一个工作簿模板,它将用于生成具有特定内容的其他工作簿。
我想在模板文件的第14列上引用for循环中每个文件的单元格N2的值。
我的代码当前抛出错误:
SyntaxError:(unicode错误)‘独角形转义’编解码器无法解码位置5-6的字节:截断\UXXXXXXXX转义。
在过去,我使用原始字符串格式,但是由于f字符串格式和公式语法,它引发了上述错误。
wb = load_workbook(os.path.join(r"C:\Users\pallist\AROTRON_OUT","template.xlsx"))
sheet = wb.worksheets[0]
files = glob.glob(".xlsx")
for f in files :
for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=14, max_col=14):
for cell in row :
partner = f"=r'C:\Users\pallist\AROTRON_IN\{f}Sheet1'!$N$2)"
cell.value = partner发布于 2022-08-31 05:06:41
我把你的问题读了好几遍。根据我的理解,下面是你想要做的事情。如果要求是别的什么,请纠正..。
C:\Users\pallist\AROTRON_IN\
中的每个excel文件重复步骤2-4。
看看能不能..。如果有任何问题,请告诉我
outpath = "C:\Users\pallist\AROTRON_OUT" ## Output path
inpath = "C:\Users\pallist\AROTRON_IN" ## Input path
files = glob.glob(os.path.join(inpath, "*.xlsx")) ## All INPUT files
for f in files : ## For each input file
fwb=load_workbook(f) ## Open each input file
fsheet=fwb['Sheet1']
i=2
wb = load_workbook(os.path.join(inpath, "template.xlsx"))
sheet = wb.worksheets[0]
for row in fsheet.iter_rows(min_row=2, max_row=fsheet.max_row, min_col=14, max_col=14): ##Read N2 - last row in INPUT file
for cell in row :
sheet.cell(row=i,column=1).value = cell.value
i=i+1
wb.save(os.path.join(outpath,os.path.basename(f)))发布于 2022-08-30 14:43:24
我认为导致问题的是在f-字符串中没有被识别的r'。尝试下面的代码,看看它是否有用
vrb = pathlib.Path(r'C:\Users\pallist\AROTRON_IN')
for f in files:
new_vrb = pathlib.Path.joinpath(vrb, f"{f}Sheet1!$N$2)")
entry = "=" + str(new_vrb)
print(entry)https://stackoverflow.com/questions/73542212
复制相似问题