Неправильный путь при расширении формул в Excel через Python (Openpyxl) ⇐ Python
-
Anonymous
Неправильный путь при расширении формул в Excel через Python (Openpyxl)
Мне помогли создать код для расширения формул, но я столкнулся с еще одной проблемой. Это (по крайней мере, я так думаю) связано только с форматом пути к другому листу. В документальном фильме openpyxl я не смог найти ничего о том, как должен выглядеть путь.
Итак, у меня есть пример кода:
из openpyxl import load_workbook из openpyxl.formula.translate импортировать переводчик wb = load_workbook("файл.xlsx") ws = wb.active # или wb["ИмяЛиста"] SR, SC = 2, 4# что есть D2 д = { "сумма": ("=СУММ(A2:C2)", "D2"), "умножить": ("=ПРОДУКТ(A2:C2)", "E2"), "разделить": ("=A2/B2/C2", "F2"), "среднее": ("=СРЕДНЕЕ(A2:C2)", "G2") } для col, agg в zip(ws.iter_cols(min_row=SR, min_col=SC), d): для idx, ячейка в перечислении (столбец): ячейка.значение = Переводчик( *d.get(агг) ).translate_formula(cell.coordinate) wb.save("file.xlsx") # это модификация на месте Как применить путь к другому листу этой части:
d = { "сумма": ("=СУММ(A2:C2)", "D2"), "умножить": ("=ПРОДУКТ(A2:C2)", "E2"), "разделить": ("=A2/B2/C2", "F2"), "среднее": ("=СРЕДНЕЕ(A2:C2)", "G2") } Например, мне нужно использовать такую строку:
"STID": ("=VLOOKUP(BQ2,'Mapping'!$V:$Y,4,FALSE)", "BQ2"), Но там написано, что это неверный синтаксис. Мне не очень понятно, как именно должен выглядеть путь к другому листу.
Мне помогли создать код для расширения формул, но я столкнулся с еще одной проблемой. Это (по крайней мере, я так думаю) связано только с форматом пути к другому листу. В документальном фильме openpyxl я не смог найти ничего о том, как должен выглядеть путь.
Итак, у меня есть пример кода:
из openpyxl import load_workbook из openpyxl.formula.translate импортировать переводчик wb = load_workbook("файл.xlsx") ws = wb.active # или wb["ИмяЛиста"] SR, SC = 2, 4# что есть D2 д = { "сумма": ("=СУММ(A2:C2)", "D2"), "умножить": ("=ПРОДУКТ(A2:C2)", "E2"), "разделить": ("=A2/B2/C2", "F2"), "среднее": ("=СРЕДНЕЕ(A2:C2)", "G2") } для col, agg в zip(ws.iter_cols(min_row=SR, min_col=SC), d): для idx, ячейка в перечислении (столбец): ячейка.значение = Переводчик( *d.get(агг) ).translate_formula(cell.coordinate) wb.save("file.xlsx") # это модификация на месте Как применить путь к другому листу этой части:
d = { "сумма": ("=СУММ(A2:C2)", "D2"), "умножить": ("=ПРОДУКТ(A2:C2)", "E2"), "разделить": ("=A2/B2/C2", "F2"), "среднее": ("=СРЕДНЕЕ(A2:C2)", "G2") } Например, мне нужно использовать такую строку:
"STID": ("=VLOOKUP(BQ2,'Mapping'!$V:$Y,4,FALSE)", "BQ2"), Но там написано, что это неверный синтаксис. Мне не очень понятно, как именно должен выглядеть путь к другому листу.