javascript - 获取 MS Word 插件 Javascript API 中的列表样式类型
问题描述
我正在尝试使用 Word 加载项 Javascript API 来打印文档中列表的级别和样式类型。
我正在使用以下代码:
Word.run(function (context) {
var range = context.document.getSelection();
var paragraphs = context.document.body.paragraphs.load("items");
var lists = [];
return context.sync()
.then(function () {
for (var i = 0; i < paragraphs.items.length; i++) {
if (paragraphs.items[i].isListItem) {
lists.push(paragraphs.items[i].listItem.load(['level', 'listString']));
}
}
})
.then(context.sync)
.then(function () {
for (var i = 0; i < lists.length; i++) {
range.insertText(lists[i].level.toString(), "End");
}
}).then(context.sync)
})
这正确地给出了列表的级别,但listString
给出了列表编号而不是它的类型,即 For 1. This is a list item
,它将返回1.
。我尝试levelTypes
在Word.List
课堂上使用,但它只返回数字、子弹或图片。我想要特定类型,例如“罗马”| “阿拉伯语” | 《信》 | “固体” | “空心”等...
有 API可以设置这些值setLevelBullet
,setLevelNumbering
但找不到任何允许读取的值。
我尝试将其转换为 OOXML,但它也没有给出使用的列表样式的类型。
我可以使用 pypandoc 库在 python 中执行此操作。它将文档转换为 HTML,然后我可以解析 ul 和 ol 标签以查找它们的类型。有没有办法在 Word 加载项中做到这一点?
谢谢!
解决方案
我尝试将其转换为 OOXML,但它也没有给出使用的列表样式的类型。
OOXML 拥有您需要的所有信息。Document.xml 在标记为 listItem 的段落中具有 listId。它引用了 numbering-xml 文件,该文件具有特定列表的信息及其每个级别的格式。ListId:s 指向编号文件末尾的抽象块,指向实际的格式定义。
不是 100% 确定您是否也可以使用段落 styleId 指向格式。
推荐阅读
- android - 清除 Android 导航组件中的返回堆栈
- google-cloud-platform - GCP Python SDK - 在没有 gcloud 的情况下启用 API
- php - 获取数据后如何选择下拉列表
- reactjs - 顺风CSS渐变问题
- linux - Bash:使用 bash 脚本抓取文本文件以查找电话号码
- javascript - 如何自动调用类中的函数
- ios - Getting an image-related exception when using a ListWheelScrollView in Flutter
- android - Android Kotlin - 在工具栏内设置徽标
- postgresql - 针对真实 postgres 数据库的 Spring Boot 集成测试
- swift - 存在方式通知何时将呈现自定义 UIView 或 removeFromSuperview()?