使用python和win32com复制和粘贴多个Excel文件

时间:2019-03-19 20:44:43

标签: python excel vba win32com

请原谅我,因为我真的很陌生。我有一个.csv文件文件夹,我正在尝试对其进行格式化以进行分析。关键是要删除一些行,然后使用文本公式设置一列的格式,然后将该公式的值复制到新列或同一列中,以便可以用另一个应用程序将其作为文本读取。逻辑继续以下模式。首先,我使用glob循环将文件转换为.xlsx。接下来,我在该循环内使用openpyxl定义工作表:

wb2 = openpyxl.Workbook()
ws2 = wb2.active
sheet2 = wb2.worksheets[0]

此后,我在另一个循环中使用以下循环将excel公式复制并粘贴到新列中:

i = "=TEXT(D2:D20,432)"
for row, celo in enumerate(list(sheet2.columns)[4]):
    celo.value = i

一切正常,直到我进入win32com部分:

    exc = Dispatch("Excel.Application")
    exc.Visible = 1
    source = exc.Workbooks.Open()
    exc.Range("E1:E20").Select()
    exc.Selection.Copy()
    exc.Selection.PasteSpecial(Paste=constants.xlPasteValues

代码对于定义了路径的一个excel文件工作正常,但是我不知道如何使用source = exc.Workbooks.Open()打开一个充满csv / xlsx文件的文件夹,并将特殊值粘贴到其中的每个excel文件中夹。我尝试在括号中使用wb2,ws2,sheet2,但一无所获。我对vba的了解非常有限(从今天开始)。我正在尝试用Python完成所有这些工作。

0 个答案:

没有答案