如何获取Word文档中的脚注编号?

问题描述 投票:0回答:1

在office-js中,当我创建脚注时,它返回一个Word.NoteItem对象,但似乎没有任何明显的方法来获取脚注的索引。

const footnote = range.insertFootnote();

// How do I know if it's footnote #5 or #4 or some other number?

本质上,当我在文档中插入脚注时,我想获取添加到文档中的数字(上标),以便我知道它是哪个脚注。

我想要得到的图片

我尝试过的事情

唯一可行的方法是加载文档中的所有脚注并循环遍历所有脚注,但这在性能方面确实很差。

例如:

const footnotes = context.document.body.footnotes.load("items");
context.sync(); 

footnotes.items.forEach(x => ...);

每次插入脚注时都必须执行此操作,这对性能来说并不是很好,因为我们预计应用程序中会有数百个脚注。

office-js office-addins office-app
1个回答
0
投票

要将唯一 ID 与每个脚注关联,请尝试以下操作:

具有数组和计数器的全局变量:

const myFootnotes = [];
let latestFixedFootnoteID = 1;

每当代码创建一个新的脚注时,它都会将该对象与父对象中的固定想法配对,然后将该父对象推入数组,同时递增计数器。

const footnote = range.insertFootnote();
myFootnotes.push( { latestFixedFootnoteID++, footnote });

或者,使用 JavaScript Map 对象(而不是

map()
函数)。使用 Map 的一个优点是键不必是字符串,因此您在创建新脚注时可以使用
latestFixedFootnoteID
作为键名称。

let latestFixedFootnoteID = 1;
const myFootnotes = new Map();

    ...

const footnote = range.insertFootnote();
myFootnotes.set(latestFixedFootnoteID++, footnote);

如果你想给你的朋友留下深刻的印象,请将计数器初始化为 0,然后通过在变量名称的开头放置“++”来预递增计数器:

++latestFixedFootnoteID

© www.soinside.com 2019 - 2024. All rights reserved.