используйте uno (openoffice api), чтобы открыть электронную таблицу * без * пересчета - PullRequest
0 голосов
/ 24 января 2012

Я использую pyuno для чтения электронных таблиц Excel (работает на Linux.) Во многих ячейках есть формулы, относящиеся к надстройкам, которые, очевидно, недоступны.Однако значения ячеек - то, что я хочу.

Но когда я загружаю и читаю лист, кажется, что эти формулы оцениваются, и поэтому значения перезаписываются с ошибками.

Я имеюпопробовал несколько вещей, ни одна из которых не сработала:

  • установить флаги AutomaticCalculation = False, MacroExecutionMode = NEVER_EXECUTE в вызове desktop.loadComponentFromURL
  • вызвать document.enableAutomaticCalculation (False) длязагруженный документ

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012

Calc пока не поддерживает использование кэшированных результатов после загрузки документа.Libreoffice Calc теперь использует кэшированные результаты для документов xls.Результаты также сохраняются в коэффициентах, но игнорируются при загрузке документа, а результат формулы оценивается путем компиляции и интерпретации сохраненной формулы.

Есть некоторые планы добавить это также для коэффициентов и xlsx, но есть многоods производители записывают неверные результаты в файл.Таким образом, до настоящего времени единственное решение - иметь вторую версию документа, сохраняя только результаты (или внедряя его в calc).

0 голосов
/ 26 января 2012

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

Чтобы быстро это сделать, выберите целоесодержимое листа, копия, специальная паста;затем удалите все, кроме «значение».Сохраните в новый файл (убедитесь, что вы не перезаписали исходный файл, иначе все формулы будут потеряны!).После этого ваш сценарий сможет обработать этот файл.

Это уродливое решение, так как должен быть способ сделать это программно.

...