You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Office JS API获取Word活动文档信息/文本及当前页面

在Word JS插件中获取屏幕可见的活动文档信息、文本及当前页面的方法

一、通过Word JS API实现需求

1. 获取活动文档基础信息

直接调用Word.Document对象即可获取文档标题、存储路径等核心信息:

await Word.run(async (context) => {
  const doc = context.document;
  doc.load("title, path");
  await context.sync();
  console.log(`文档标题:${doc.title},存储路径:${doc.path}`);
});

2. 获取屏幕可见区域的文本

Word JS API没有直接提供“获取屏幕可见文本”的原生方法,但可以通过视图信息结合范围筛选间接实现:

  • 先获取当前窗口的滚动位置和视图类型,再结合文档段落的位置计算可见内容
  • 简化方案:若无需极致精准,可获取当前光标/选中区域附近的文本(多数场景下能覆盖可见范围):
await Word.run(async (context) => {
  const selection = context.document.getSelection();
  selection.load("text, parentParagraph");
  await context.sync();
  
  // 获取当前段落及前后各2段的文本(模拟可见区域)
  const currentPara = selection.parentParagraph;
  const prevPara = currentPara.getPrevious();
  const nextPara = currentPara.getNext();
  
  [prevPara, currentPara, nextPara].forEach(para => para.load("text"));
  await context.sync();
  
  console.log("可见区域附近文本:", `${prevPara?.text || ""}\n${currentPara.text}\n${nextPara?.text || ""}`);
});

3. 获取当前活动页面

利用Range.getPageNumber()方法可以直接获取当前光标/选中区域所在的页面:

await Word.run(async (context) => {
  const selection = context.document.getSelection();
  const pageNum = selection.getPageNumber();
  await context.sync();
  console.log("当前活动页面:", pageNum.value);
});

如果需要获取当前视图显示的所有页面范围,可结合activeWindow的滚动信息进一步计算,但需要注意不同视图类型(如页面视图、大纲视图)的兼容性。

二、其他可行思路

  • 若允许用户配合,可引导用户选中屏幕可见区域,直接通过getSelection()获取选中文本,这种方式简单且精准
  • 无法通过DOM操作直接访问Word主窗口内容(插件任务窗格与Word主进程隔离),因此该路径不可行

内容的提问来源于stack exchange,提问作者Soham Nale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 06:48:14