我在Word文档中有一个表格,它会合并单元格,我正在尝试使用office.js通过word插件提取数据
示例:
我想收集 json 中的数据,即对于每个标头,有一个数组指出它们存在的值,即
{
"Header 0,0": [['Cell 1.1', 'Cell 2.1']],
"Header 3": [['Cell 3']],
"Header 4": [['Cell 4']],
"Header 5,6": [['Cell 5.1', 'Cell 6.1']],
}
目前我已经尝试了通过 office.js Table 类对象从表中获取值并直接迭代这些值的方法,但我从中得到了以下 2D 数组,
[
['Header 0,0', 'Header 3', 'Header 4', 'Header 5,6'],
['Cell 1.1', 'Cell 2.1', 'Cell 3', 'Cell 4', 'Cell 5.1', 'Cell 6.1']
]
根据上面的值,我们将无法形成标题与其数据单元格的关系。
我会采取一些方法来解决这个问题。
第一个是迄今为止最简单的,但也是最不健壮的,因为如果标头发生更改,代码需要重新工作。
基本上,如果标题不改变,只需构建一个映射对象,例如:
{
"Header 0,0": 2,
"Header 3": 1,
"Header 4": 1,
"Header 5,6": 2,
}
然后您可以获取上面显示的数组,迭代它并构建您想要的输出。
其次是在获取值之前取消合并标题单元格,构建所需的输出并重新合并单元格
第三种方法是获取一个定义合并标头范围的对象,并迭代您的值以获得所需的输出。
我简单浏览了一下 API,但不幸的是,我找不到方法 2 或 3 的任何内容,不过,这两种方法都可以通过 Office-JS API 在 Excel 中实现。
阅读此答案 --> 如何使用 Javascript 为 Microsoft Word 插件拆分 TableCell?
让我觉得任一选项都是最简单的路线,但您也可以使用 OpenXML 等纯 Web 技术来读取表格并收集信息。
这里有一些链接可以帮助您找到正确的方向 -->
https://stackoverflow.com/a/50347584/5079799
https://learn.microsoft.com/en-us/samples/officedev/pnp-officeaddins/word-get-set-edit-ooxml/
https://jiteshkumawat.github.io/oxml.js/
正如我之前所说,可以使用 Excel Office-JS API,但根据我的理解,不能使用 word。由于您没有提供任何代码,所以我的答案中没有代码,如果您在实现解决方案时遇到困难,您可以通过 w/
code
开始新帖子。