Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 15, 2021 20:13:13

Irv1n
Зарегистрирован: 2018-09-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Вставка формул в excel (openpyxl)

У меня есть данный код:

 wb = Workbook()
ws = wb.active
listf = [[1,1,1,1], [2,2,2,2], [3,3,3,3]]
calc_lst = [['=СЧЁТЕСЛИ(listf[x];"<>")'], ["=СРЗНАЧ(listf[x]"], ["=СТАНДОТКЛОН(listf[x])"], ['=СТАНДОТКЛОН(listf[x])/корень(СЧЁТЕСЛИ(listf[x];"<>"))']]
def col_writer(row_number, column_number, lst):
    for col in range(len(lst)):
        for row in range(len(lst[col])):
            ws.cell(row+row_number, col+column_number, lst[col][row])
    return wb.save("sample.xlsx")
col_writer(1,2, listf)
К этому коду дополнительно я хочу вставлять список:calc_lst, что бы получилось в таком виде:
Screenshot
Как это можно сделать?

Отредактировано Irv1n (Сен. 15, 2021 20:13:52)

Офлайн

#2 Сен. 16, 2021 01:54:15

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Вставка формул в excel (openpyxl)

Сделай ещё функции.

Одна функция у тебя должна создавать структуру с данными, которую можно сразу записать в файл. В этой структуре будет адрес (куда писать данные) и сами данные. Эти данные будут вот этими значениями 1 2 3 4.

Вторая функция у тебя должна создавать структуру с данными, которую можно сразу записать в файл. В этой структуре будет адрес (куда писать данные) и сами данные. Эти данные будут формулами с правильными адресами ячеек.

Третья функция должна принимать структуру с данными, в которой есть адрес и сами данные, и писать эту структуру в файл. Чтобы писать структуру в файл, функция должна будет принимать имя файла ещё. А внутри функции будет создаваться эта книжка там и так далее - всё, что нужно, для создания файла. Может, она будет даже существующий файл ещё загружать и доделывать его.

Irv1n
У меня есть данный код:
Чтобы сделать то, что нужно, у тебя написано слишком мало. Адреса в формулах ты не можешь сделать вот так через listf, как ты пытаешься это сделать. Адреса в формулах должны прямо указывать на диапазаны ячеек. Можно там взять какую-то фигню относительную, но лучше будет сделать формулы статическими, которые точно знают, из каких диапазонов ячеек и что и сколько они берут. А для этого нужна какая-то функция, которая точно знает, где какие адреса (где данные лежат, где формулы лежат и так далее).



Отредактировано py.user.next (Сен. 16, 2021 01:55:44)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version