Копирование и вставка нескольких файлов Excel с python и win32com - PullRequest
1 голос
/ 19 марта 2019

Пожалуйста, извините, я действительно новичок в этом. Я получил папку .csv файлов, которые я пытаюсь отформатировать для анализа. Смысл состоит в том, чтобы удалить несколько строк, а затем отформатировать один столбец, используя текстовую формулу и скопировав значения этой формулы в новый или такой же столбец, чтобы его можно было прочитать с другим приложением в виде текста. Логика продолжается по следующей схеме. Сначала я конвертирую файлы в .xlsx в цикле, используя glob. Далее я определяю рабочие листы, используя 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.

...