Python: запись данных в столбцы в защищенном файле Excel .xlsm - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть защищенный паролем файл .xlsm с формулами в некоторых столбцах и макросах.

Можно ли мне записать данные из панд в определенные столбцы этого файла .xlsm?

Я пробовал xlwings, но для обновления 10k строк требуется 15 минут, даже с помощью Application.ScreenUpdating = False.

В настоящее время я использую функцию, показанную ниже:

import xlwings as xw

def enter_data(path, sheetname, start_column, df):
wb = xw.Book(path)
ws = wb.sheets[sheetname]

for i in range(len(df.columns)):
    column = chr(ord(start_column)+i)

    for index, row in df.iterrows():
        cell = column.upper() + str(index + 3)
        ws.range(cell).value = row[i]

wb.save(path)
wb.close()

Мне известен обходной путь, при котором я сохраняю кадр данных pandas в csv и копирую и вставляю csv в пароль.защищенный файл .xlsm, но меня интересует полностью автоматизированный процесс, если это возможно.

Спасибо!

1 Ответ

0 голосов
/ 08 декабря 2018

Вы не должны проходить через отдельные ячейки с xlwings.Если вы назначите свой массив непосредственно ячейке, он будет достаточно быстрым, например, wb.sheets[0].range('A1').value = my_dataframe.Смотри: https://docs.xlwings.org/en/stable/datastructures.html

...