使用office.js进行office加载项开发时,无法在word文档的书签中插入文本

2024-04-11

我正在开发一个 word 插件。主要任务是使用数据库中的数据填充文档中的书签。在 office.js 中,我发现书签可以作为范围对象进行访问,并且我正在使用“ rangeObject.insertText(text, insertLocation)" 将数据插入书签的方法。但问题是第二个参数 insertLocation 值可以是 'Replace'、'Start'、'End'、'Before' 或 'After'。这基本上是追加书签之前或之后的数据。像这样 -图片 1(使用 insertLocation 值“End”的当前结果) https://i.stack.imgur.com/l1k9P.jpg

使用 insertLocation 值“替换”它会替换整个书签并实际上从文档中删除书签!所以我想要的就是在书签中插入一个文本,如下所示-图2(期望的结果) https://i.stack.imgur.com/d79hO.jpg

注意:我稍后必须读取这些书签值。因此无法删除任何书签。并且我正在使用 Office.js api 的 1.4 beta 版本。

这是我的代码-

        Word.run(function (context) {

            var doc = context.document;

            //get the bookmark range by its name
            var bookmarkRange = doc.getBookmarkRangeOrNullObject("cscasenumber01");

            //insert a data
            bookmarkRange.insertText("test data",'end');


            // Synchronize the document state by executing the queued commands, 
            return context.sync();

        }).catch(errorHandler);

在审查此问题后,我们发现“替换”行为是设计使然。

事实上,如果您直接使用 UI 替换包含书签的范围的文本,则书签将被删除。如果您使用宏/VBA 以编程方式执行此操作,情况也是如此。

好消息是,替换文本后,选择将是替换的文本范围,因此如果需要,您可以在替换操作后重新创建书签。

请注意,这只发生在替换时。在开始或结束处插入将保留书签。

最后,书签 API 仍处于预览阶段,发布日期未知。

--------- 保留预览答案的一些上下文 ---------

非常感谢您使用我们的预览版 API。我只是重现这种行为,这是设计使然。是的,API 上的 before、start、end、after 的语义非常清晰。

  1. “开始”和“结束”插入位置意味着插入将在调用范围的边界内,在这种情况下意味着如果您使用其中任何一个,则书签需要扩展到插入的任何内容。
  2. 另一方面,“之前”/“之后”意味着插入到范围边界之外。
  3. 最后,replace 应该用作为参数提供的任何文本替换书签,书签将被删除(与直接在 UI 中并使用 VBA 以编程方式执行此操作一致)。

谢谢

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

使用office.js进行office加载项开发时,无法在word文档的书签中插入文本 的相关文章

随机推荐

  • 扩展的 VSCode 错误日志在哪里?

    当我收到扩展错误时 我无法知道为什么会发生错误 您可能正在寻找 cmd shift p gt 搜索Show Logs gt Extension Host
  • 如何使 HSQL 驱动程序正常工作?

    我目前正在学习 Java 中的一些数据库技巧 我发现我正在读的这本好书 在某些时候 它鼓励我尝试与以下类进行手动数据库连接 import java sql DriverManager import java sql Connection i
  • Serialized接口的DTO实现

    Java DTO 模型对象是否必须实现序列化 如果是这样为什么 如果不是 对性能等有何影响 DTO 通常是数据传输对象 它不必使用 Java 序列化 但如果不使用 则需要遵循一些其他约定 这不是性能问题 就像您使用 Java 序列化一样 它
  • ruby 中的 ||= 是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 在 Ruby 中是什么意思 https stackoverflow com questions 995593 what does mean in ruby ruby 中的 是什么 这是一个条件分配 如
  • 用原始图像替换蒙版 opencv Python

    我正在尝试用原始图像像素替换使用蒙版找到的对象 我有一个遮罩 在未检测到物体的情况下显示黑色 如果检测到物体则显示白色 然后我在 where 语句中使用该图像 image np where image2 255 255 255 any ax
  • Hibernate:CRUD 通用 DAO

    我的网络应用程序有很多服务表 实体 例如payment methods tax codes province codes etc 每次添加一个新实体时 我都必须编写一个 DAO 问题是 基本上 它们都是相同的 但唯一的区别是实体类本身 我知
  • Android 平台源代码中的断点

    使用 Intelllj idea 我尝试调试 Android 源 API 17 但是当我在平台源中设置断点时 它们在运行时会被忽略 在调试时查看断点 其中有一个十字 并显示一条消息 在类 android view 的第 15 508 行找不
  • Spring - applicationContext.xml 无法打开,因为它不存在

    我有一个 Spring MVC 应用程序 并且与文件 applicationContext xml 结合使用 JUnit 测试时遇到问题 在我的 JUnit 测试类中我写道 final ApplicationContext context
  • 使用 XML 包将 html 表抓取到 R 数据帧中

    如何使用 XML 包抓取 html 表 以维基百科页面为例巴西足球队 http en wikipedia org wiki Brazil national football team 我想在 R 中阅读它并获取 巴西与 FIFA 认可球队对
  • 在 GIT 中处理 Rails db/schema.rb 文件的正确方法是什么?

    我们应该包括schema rb同时致力于 GIT 或者我们应该忽略它 什么是正确的做法 好标准schema rbRails 2 文件在文件顶部的注释块末尾有这样的内容 It s strongly recommended to check t
  • 警告:本机不支持快速启动/快照

    我在使用 android studio 运行我的应用程序时遇到错误 但在此之前它工作正常 直到更新 Android API27 我尝试卸载它但没有任何结果 收到的警告是 模拟器 警告 本机不支持快速启动 快照 A 目前需要CPU UG功能
  • 是否可以使用 TagLibSharp 从 MP3 文件中删除 Lyrics3v2 标签?

    我想知道是否可以删除歌词3v2使用 MP3 文件中的标签类型标签库夏普 https github com mono taglib sharp图书馆 This http id3 org Lyrics3v2文档说块条目以单词 开头歌词开始 并以
  • Android ViewPager:从 URL 下载图像

    我正在尝试使用创建一个图片库ViewPager 我找到了几个例子并且我已经让它们全部工作了 示例没有展示的一件事是如何使用从 URL 下载的图像填充 ViewPager 所有教程都有图像Drawables文件夹或 SD 卡上 有谁知道 Vi
  • 使用 SF 库读取 GeoJSON 文件?

    我一天前刚开始使用 R 我正在尝试使用 SF 库读取 geojson 文件 但我不确定正确的方法是什么 library dplyr library sf geo lt system file my path zones geojson pa
  • 由于函数 asprintf 无法编译程序

    找到此代码 需要停止将戴尔笔记本电脑中的 CPU 节流至 20 这是由于电源适配器无法被计算机识别而发生的 尝试在 Kubuntu 上编译并得到以下结果 warning implicit declaration of function as
  • 继续处理结果的 Null 值(Nodejs、Puppeteer)

    我刚刚开始使用 Puppeteer Headless Chrome 和 Nodejs 我正在抓取一些测试站点 当所有值都存在时 一切都很好 但如果该值丢失 我会收到如下错误 Cannot read property src of null
  • Microsoft Azure Graph API下载项附件内容

    当我在office365网页浏览器页面中打开电子邮件时 有一个选项可以下载该电子邮件的附件内容项目附件 使用 Microsoft Outlook 将另一封邮件附加到当前邮件 eml 文件 内容类型 RFC 822 但是 当我尝试通过 Gra
  • 监控 Spring Embedded Tomcat 指标

    我想监控 Spring Boot 服务中嵌入的 Tomcat Spring 本身为我提供了一些会话使用统计信息 但我需要有关底层线程池的其他信息 如活动连接 队列长度等 我搜索了注册的bean 但找不到使用的线程池 关于如何检索该信息有什么
  • PHP:如何检查一年中的季节并相应地设置类别

    我有一个网站 它在标题区域使用 4 种不同的背景图像 这些图像在视觉上对应于耳朵的季节 夏季 秋季等 对于夏季时间框架 我使用一张图像 对于秋季时间框架 使用另一张图像 依此类推 问题是 一旦一年中的季节发生变化 我就必须手动更改这些图像
  • 使用office.js进行office加载项开发时,无法在word文档的书签中插入文本

    我正在开发一个 word 插件 主要任务是使用数据库中的数据填充文档中的书签 在 office js 中 我发现书签可以作为范围对象进行访问 并且我正在使用 rangeObject insertText text insertLocatio