Я действительно застреваю, пытаясь выяснить, как принудительно обновлять программные вычисления (3.3) сокетов, когда значения ячеек являются закладками, а закладки обновляются программно (через UNO вызовы на Java).Писатель OpenOffice - программно обновляющие таблицы с формулами ячеек
Пример
| 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