wb=xw.Book()
for i in ripPaths:
wbtemp=xw.Book(i)
my_values=wbtemp.sheets['sheet1'].range('B5:B4722').options(ndim=2).value
wb.sheets['sheet1'].range("A1:A4722").value=my_values
我正在尝试使用for循环依次打开磁盘上的100个excel文件,然后从每个文件中复制同一列并将其粘贴到另一个excel文件中。问题是我一直覆盖ColumnA。我需要第5行中的A1:A4722通过excel列名递增到B,C,D。
我陷在泥里了!
目标是让我的100个excel文档各包含1列,以制作包含100 excel列的新excel文件。感谢您的提示。
答案 0 :(得分:1)
当然,这是我的看法。由于Excel可以先从A-Z循环再到AA-AZ,依此类推,所以这类事情的来信会很复杂,但是:这是一种方法:
wb=xw.Book()
for i in range(len(ripPaths)):
wbtemp=xw.Book(ripPaths[i])
my_values=wbtemp.sheets['sheet1'].range('B5:B4722').options(ndim=2).value
if i < 26:
wb.sheets['sheet1'].range(f"{chr(65+i)}1:{chr(65+i)}4722").value=my_values
elif i < 52:
wb.sheets['sheet1'].range(f"A{chr(39+i)}1:A{chr(39+i)}4722").value=my_values
elif i < 78:
wb.sheets['sheet1'].range(f"B{chr(13+i)}1:B{chr(13+i)}4722").value=my_values
elif i < 104:
wb.sheets['sheet1'].range(f"C{chr(-13+i)}1:C{chr(-13+i)}4722").value=my_values
这使用f字符串,您可以选择使用其他形式的字符串格式。
答案 1 :(得分:0)
wb=xw.Book()
for i in range(3):
wbtemp=xw.Book(ripPaths[i])
my_values=wbtemp.sheets['sheet1'].range('B5:B4722').options(ndim=2).value
wb.sheets.active.range((1,i+1)).value=my_values
Aditya用f弦的答案很不舒服,但这更平滑。谢谢你的提示,费利克斯。