Сохранение формата с помощью Openpyxl. Нужно открыть и снова сохранить файл - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть прикладная программа "program.exe", в качестве аргумента которой используется файл Excel:

program.exe file.xlsx

Файл "file.xlsx" необходимо изменить в первую очередь. В частности, мне нужно создать дамп данных с некоторыми вычислениями:

wb = load_workbook(filename="file.xlsx")
ws = wb.active
list2d = df.values.tolist()
for r_idx, row in enumerate(list2d, 1):
    for c_idx, value in enumerate(row, 1):
        ws.cell(row=r_idx+start_row, column=c_idx, value=value)

wb.save("file.xlsx")

Однако моя программа не принимает файл "file.xlsx", если я не открываю и не сохраняю файл вручную. Я видел, что некоторые другие пользователи сталкивались с такой же проблемой, но, видимо, не решили?

1 Ответ

0 голосов
/ 10 апреля 2020

Расширение комментариев:

Да, программа запускалась так:

import openpyxl as xl 

wb = xl.Workbook()
ws = wb.active

[lots of code to create/format the worksheet]

и заканчивалась так:

f = '/home/chris/myDir/outFile.xlsx'
wb.save(f)
Popen(['localc', f]) # to open the file after saving, as there's no way to simply open the worksheet/book after creating with openpyxl--`Popen` exists within the `subprocess` package

Чтобы быть понятным, outFile.xlsx это файл, который уже существует и сохраняется в.

...