线程模式Python代码将数据从多个工作簿复制到主工作表

我必须从6个工作簿复制数据并将其粘贴到主工作簿中。所有工作簿都位于我桌面上的一个文件夹中:C:\USERS\f6565\Desktop\Data
工作簿包含一个名为'Main Data'的工作表,我必须打开每个工作簿,转到工作表'Main Data',选择从第5行到第'x'行(行尾)的列范围A到GJ,然后将数据范围复制并粘贴到主工作表中。在主工作表(名为Main Data)中,我将数据粘贴到A列第5行的末尾,并在从更多工作簿复制数据时继续粘贴/追加数据。最后,主工作簿在一个工作表中的每个工作簿的A列第5行到GJ列中包含数据。
从第5行开始的列范围从A到GJ,在每个工作簿的所有工作表(主数据)中始终保持不变。每个工作簿包含几个工作表,但我只对工作表和主要数据感兴趣。我必须对这6个工作簿重复相同的步骤,并继续将数据粘贴/追加到主表中。所以,我想知道有没有人能帮我为这个创建一个python代码?
我用VB就能做到这一点,而且很管用。然而,我需要能够完全使用Python来做到这一点!以下是我的VB代码:

选择 | 换行 | 行号
  1. Sub CopyRange()
  2.     Application.ScreenUpdating = False
  3.     Dim wkbDest As Workbook
  4.     Dim wkbSource As Workbook
  5.     Set wkbDest = ThisWorkbook
  6.     Dim LastRow As Long
  7.     Const strPath As String = "C:\Users\f6565\Desktop\data\"
  8.     ChDir strPath
  9.     strExtension = Dir("*.xlsx*")
  10.     Do While strExtension <> ""
  11.         Set wkbSource = Workbooks.Open(strPath & strExtension)
  12.         With wkbSource
  13.             LastRow = .Sheets("Main Data").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
  14.             .Sheets("Main Data").Range("A5:GJ" & LastRow).Copy wkbDest.Sheets("MAIN DATA").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
  15.             .Close savechanges:=False
  16.         End With
  17.         strExtension = Dir
  18.     Loop
  19.     Application.ScreenUpdating = True
  20. End Sub

我对蟒蛇不是很在行,非常感谢你的帮助!
如果您需要任何澄清,请让我知道。
非常感谢!

# 回答1


您发布的任何内容都不是我们可以帮助的。发布到目前为止您已经拥有的代码。
# 回答2


到目前为止,我已经做到了这一点:

选择 | 换行 | 行号
  1. import openpyxl as xl
  2.  
  3. path1="C:\Users\f6565\Desktop\data\data1.xlsx"
  4. path2="C:\Users\f6565\Desktop\data\Result.xlsx"
  5.  
  6. wb1 = xl.load_workbook(filename=path1)
  7. ws1 = wb1.worksheets[0]
  8. wbX = xl.load_workbook(filename=path0)
  9. wsX = wbX.worksheets[0]
  10. wb2= xl.load_workbook(filename=path2)
  11. ws2= wb2.worksheets[0]
  12.  
  13. for row in ws1:
  14.         for cell in row:
  15.             ws2[cell.coordinate].value=cell.value
  16. wb2.save(path2)

但是,它只复制一些数据值,而不是复制所有数据。此外,我只能从一个工作簿传输数据,而不能从7个工作簿传输数据。

标签: python

添加新评论