Поддерживает ли модуль 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 (заставляет компилировать текст в байт-код, которым он доволен). Работа над этим очень низка в моем списке приоритетов.

Другие вопросы по тегам