Я действительно застрял, пытаясь выяснить, как заставить программно обновить вычисления ячеек openoffice writer (3.3), когда значения ячеек являются закладками, а закладки обновляются программно (через вызовы UNO в Java).
Пример
| start | stop | duration |
| 9:30 | 11:30 | = <A2>-<B2> | <= cell formula
Это прекрасно работает, когда пользователь вручную редактирует таблицу, значение обновляется при переходе к следующей ячейке.Однако, если я обновляю значения программно, вставляя текст в закладки в ячейках, вычисленные ячейки не обновляются.Они будут обновляться, если вы щелкнете по таблице, но я бы хотел, чтобы это происходило автоматически.
Закладка находится в таблице следующим образом.
| start | stop | duration |
| <start0> | <stop0> | = <A2>-<B2> |
Пример кода для обновления закладки:
XBookmarksSupplier xBookmarksSupplier = (XBookmarksSupplier) UnoRuntime.queryInterface(XBookmarksSupplier.class, document);
XNameAccess xNamedBookmarks = xBookmarksSupplier.getBookmarks();
Object bookmark = xNamedBookmarks.getByName("stop0");
XTextContent xBookmarkContent = (XTextContent) UnoRuntime.queryInterface(XTextContent.class, bookmark);
xBookmarkContent.getAnchor().setString("11:30");
// code needed to force calculation of duration cell