Найти - Пользователи
Полная версия: openpyxl записать формулу
Начало » Python для новичков » openpyxl записать формулу
1
rokagor
Помогите начинающему, пожалуйста.
Задача. Создать книгу Excel и в нее вставить формулы на внешние книги из папки, типа:
='C:\Мои документы\Тест\Лист1'!$A$1
Файл создал, перечень файлов в папке получил, а вот как формулу вставить да с переменными не знаю
кусок кода:
 scan_dir='C:\Мои документы\Тест'
for files in os.listdir(scan_dir): 
    if os.path.isfile(os.path.join(scan_dir, files)):
       if fnmatch.fnmatch(files, mask):         
           ws_a.cell(i,2).value = scan_dir, "[" , files, "]Лист1'!$A$1"
выдает ошибку ValueError: Cannot convert
AD0DE412
 scan_dir='C:\Мои документы\Тест'
это у вас работает?
вроде должно быть как то так
 scan_dir='C:\\Мои документы\\Тест'
или так (но это не точно, не знаю как это в 3 версии python. у меня … я, тоже учимся, мы, этому, питону, вот)
 scan_dir=r'C:\Мои документы\Тест'
rokagor
AD0DE412
scan_dir='C:\Мои документы\Тест'
это у вас работает?
вроде должно быть как то так
Не работает код в utf8, а папки в cp1251. У меня название папки хранится в ini файле в 1251, это я для общей картины нарисовал.
В общем я разобрался в чем было дело, неправильно передавал формулу.
Было ws_a.cell(i,2).value = scan_dir, "Лист1'!$A$1“
а надо ws_a.cell(i,2).value = scan_dir + ”\Лист1'!$A$1"
Но это еще не все, нужно как-то эти формулы заставить тянуть значения из внешних файлов иначе при открытии созданного файла вместо значений получаю #ССЫЛКА!. И лишь после нажатия F2 на ячейке получаю значение из файла.
Как-то надо полученную книгу заставить обновить связи.
AD0DE412
Не работает код в utf8, а папки в cp1251.
>>
тянуть значения из внешних файлов
мне кажется однозначно так или иначе нужно открывать исходные файлы что бы получить нужные вам значения
зы на хабре смотрели
rokagor
AD0DE412
мне кажется однозначно так или иначе нужно открывать исходные файлы что бы получить нужные вам значения
зы на хабре смотрели

Перерыл интернет, оказывается openpyxl не умеет пересчитывать формулы, для этих целей нужны библиотеки, работающие с Excel через API. Нашел xlwings, делает то что мне надо, но только при этом открывает сам Excel.
AD0DE412
rokagor
Перерыл интернет … xlwings, делает то что мне надо, но только при этом открывает сам Excel.
я то же! ну такое кнешно, но
https://pypi.org/project/vb2py/
http://vb2py.sourceforge.net/

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB