OpenOffice writer - 以编程方式使用单元格公式更新表格

2024-01-26

当单元格值为书签并且书签以编程方式更新(通过 Java 中的 UNO 调用)时,我真的很想找出如何强制以编程方式刷新 openoffice writer (3.3) 单元格计算。

Example

| 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

我自己已经弄清楚了。关键是要使用X可刷新 http://www.openoffice.org/api/docs/common/ref/com/sun/star/util/XRefreshable.html并且知道表格中的单元格公式算作“文本字段” - 因此使用传统的冗长(但有趣)UNO 元编程风格......

  • 从 XTextDocument 实例查询文本字段供应商
  • 从文本字段枚举查询可刷新实例
  • 呼叫刷新

更新:如果正在更新的公式中的源单元格应用了格式,则此操作将不起作用,目标单元格的格式并不重要。

Code

XTextFieldsSupplier tfSupplier = (XTextFieldsSupplier) 
        UnoRuntime.queryInterface(XTextFieldsSupplier.class, document); 
XRefreshable refreshable = (XRefreshable) 
        UnoRuntime.queryInterface(XRefreshable.class, tfSupplier.getTextFields()); 
refreshable.refresh(); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenOffice writer - 以编程方式使用单元格公式更新表格 的相关文章

随机推荐

  • 显示软键盘时出现对话框

    我有一个扩展的类Dialog 在那里面Dialog我有一个EditText and a ListView 当该对话框显示时 我可以调出软键盘 但我的问题是我们可以让对话框在显示软键盘时不弹出吗 我尝试改变softInputMode在布局参数
  • 使用 Mathematica 7 调试 Mathematica 5 上的工作程序

    我目前正在阅读 Mathematica 编程指南 并试图编写这本书的第一个程序 基本上 当我运行以下程序时 Plot3D Re Exp 1 x I y x 0 02 0 022 y 0 04 0 042 PlotRange gt 1 8 P
  • 如何使用 gradle 0.7+ 将 .so 文件添加到 android 库项目

    项目结构 应用程序项目 gt 取决于库项目 图书馆计划 有一个用于编译 jni 库的文件夹 jniLibs srcDirs libs 我尝试按照示例应用程序将以下内容添加到 build gradle 的 android 元素中https a
  • 在 JQuery 中获取 Node 的原始 HTML

    我用过 parent html 获取内部 html parent 但是我如何获取父级本身的 html 呢 用例是 我获取一个像这样的输入节点 var field input 我希望能够获取该节点的原始 html
  • 用户存在和身份验证

    我正在使用此代码使用服务在后台检测我的 Android 应用程序中的用户存在 final FirebaseAuth mAuth FirebaseAuth getInstance final FirebaseDatabase database
  • 动态规划和分而治之

    我正在读书动态规划的笔记 http www es ele tue nl education 5MC10 Solutions knapsack pdf 我遇到了以下评论 如果子问题不是独立的 即 子问题共享子子问题 然后分而治之算法重复解决公
  • Android 获取屏幕宽度和高度

    如何获取屏幕宽度和高度并在以下位置使用该值 Override protected void onMeasure int widthSpecId int heightSpecId Log e TAG onMeasure widthSpecId
  • 将分隔的字段合并为一个

    我在 Ada 工作 我有一个非常丑陋的类型 我无法修改 我想做一些易于使用的事情 类型是这样的 for T Ugly Type Alignment use 4 for T Ugly Type Size use 48 for T Ugly T
  • 比 SHA1 更好的散列

    我正在开发一个应用程序 我需要存储用户密码 所以我想将其存储在注册表的当前用户类中 但出于显而易见的原因我也想对其进行哈希处理 并且我我看到新闻报道称 SHA1 已被破解 标准 系统或 net 中是否有更好的 未破解的 哈希算法 SHA1
  • 使用 & 符号解析 XML

    我有一个包含 XML 的字符串 我只想将其解析为 Xelement 但它有一个 符号 我在使用 HtmlDecode 解析它时仍然遇到问题 有什么建议么 string test
  • 如何在 django 中实现 ldap 身份验证(无需管理员凭据)

    我的设置 Django 3 0 Python 3 8 django auth ldap我的组织中有 LDAP 服务器 Active Directory 服务器 我正在构建一个 Django 应用程序 它为所有用户提供一些操作 我知道 Dja
  • C 样式数组不再适用于记录

    我以前使用过这个人为的代码 record Foo int bar 这是利用C型数组 符号 它在 Java 15 中编译得很好 现在 突然之间 随着正式发布records在 Java 16 中 它不再编译 这是输出jshell jshell
  • 运行闪亮应用程序时访问/使用 R 控制台

    有谁知道在运行闪亮的应用程序时是否能够访问 R 控制台 如果可能的话 在后台运行闪亮的应用程序也会有帮助 我需要这个来操作 GlobalEnv 中的对象 这些对象在闪亮的应用程序中使用 并且必须使用命令行来完成 启动应用程序时 控制台很忙
  • 无法在简单示例中从 Spark ML 运行 RandomForestClassifier

    我尝试过运行实验RandomForestClassifier来自spark ml包 版本 1 5 2 我使用的数据集来自LogisticRegression中的示例Spark 机器学习指南 http spark apache org doc
  • Spring:在 Java 配置中定义自定义 @Transactional 行为

    我希望 Spring 回滚带有注释的方法上的事务 Transactional以防该方法抛出已检查的异常 等价于此 Transactional rollbackFor MyCheckedException class public void
  • RoR Net::HTTP post 错误未定义方法“bytesize”

    我目前正在反复用头撞墙 直到解决这个问题 我正在使用 ruby 1 9 3 p194 和 Rails 我正在尝试发出一个发布请求 我可以使用 Net HTTP post form 很好地完成该请求 但我不能在这里使用它 因为我需要在标头中设
  • 如何在 WPF 中隐藏组合框的项目

    有没有办法在 WPF 中隐藏组合框的项目 在我的用户控件中 有一个列表框 其中复选框项目绑定到 ObservableCollection 和一个带有组合框的数据网格
  • TypeError:“NoneType”对象在 Google Colab 中不可调用

    下面导入的包和模型被定义为允许访问构建操作 import matplotlib pyplot as plt import tensorflow as tf import numpy as np import cv2 import os fr
  • 如果单词的第一个字母是元音,如何返回 1,否则返回 0。映射器(MapReduce)问题

    这是我正在处理的 MapReduce 问题的第一部分 我需要一个函数 如果单词的第一个字母以元音开头 则返回 1 否则返回 0 该程序通过将文本文件传输到映射器来在终端中运行 如下所示 cat test txt python3 mapper
  • OpenOffice writer - 以编程方式使用单元格公式更新表格

    当单元格值为书签并且书签以编程方式更新 通过 Java 中的 UNO 调用 时 我真的很想找出如何强制以编程方式刷新 openoffice writer 3 3 单元格计算 Example start stop duration 9 30