Поддерживает ли модуль xlwt НЕПОСРЕДСТВЕННОЕ?
Я использовал следующие коды, но это не работает. Я проверил XLS. Формула заполнена правильно, но остается в виде текстовой записи. Если нажать ENTER, чтобы активировать эту ячейку, она работает.
sheet1.write(1, 1, xlwt.Formula('INDIRECT(\"\'sheet1\'!B1\")'))
Я считаю, что INDIRECT объявлен в xlwt\ExcelMagic.py:
all_funcs_by_name = {
# Includes Analysis ToolPak aka ATP aka add-in aka xcall functions,
# distinguished by -ve opcode.
# name: (opcode, min # args, max # args, func return type, func arg types)
# + in func arg types means more of the same.
...
'INDIRECT' : (148, 1, 2, 'R', 'VV'),
...
Кто-нибудь может подсказать, как использовать формулу INDIRECT?
1 ответ
xlwt
имеет проблемы с компиляцией формул, которые содержат некоторые функции, которые должны возвращать ссылки. Это не имеет значения в OpenOffice Calc и Gnumeric, которые работают по принципу "делай, что я имею в виду". В Excel 2003 вам нужно выбрать ячейку, затем нажать F2 (вынуждает декомпилировать формулу из сгенерированного xlwt байт-кода в текст), а затем Enter
(заставляет компилировать текст в байт-код, которым он доволен). Работа над этим очень низка в моем списке приоритетов.