使用 XL wings 将 100 个不同 Excel 路径中的 1 列复制到 1 个 Excel 文件

Copy 1 column from 100 different Excel paths to 1 Excel file using XL wings

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 文件。感谢您的任何提示。

当然,这是我的看法。这种类型的字母会很复杂,因为 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-strings,如果您愿意,可以使用另一种形式的字符串格式。

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 字符串的回答很恶心,但这更流畅。谢谢你的提示,菲利克斯。