开发者社区> 问答> 正文

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

一码平川MACHEL 2019-01-22 16:37:15 366

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文件。

分享到
取消 提交回答
全部回答(1)
  • 一码平川MACHEL
    2019-07-17 23:26:19

    当然,这是我的看法。这类事物的信件很复杂,因为Excel可以从AZ循环,然后是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字符串,如果您愿意,可以使用其他形式的字符串格式。

    0 0
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章