ms-word - 空单元格和 html 生成 Word API Javascript 表格
问题描述
以下代码应计算段落数,并且在每个段落中,函数 placeComponents 使用模式来确定段落是否包含特定文本。(它实际上更复杂,但这总结了代码的作用。)
await window.Word.run(async context => {
const paragraphs = context.document.body.paragraphs
context.load(paragraphs, 'text,tableNestingLevel,contentControls/title')
await context.sync()
let emptyParagraphTable = 0
for (let i = 0; i < paragraphs.items.length; i++) {
console.log('Is the paragrap in table?', paragraphs.items[i].tableNestingLevel !== 0, i, paragraphs.items[i].text)
if (paragraphs.items[i].tableNestingLevel !== 0 && paragraphs.items[i].text === '') {
emptyParagraphTable += 1
} else {
const id = i - emptyParagraphTable
await placeComponents(paragraphs.items[i], id)
}
}
})
文档内容如下所示
和代码日志:
如您所见,一些未出现在表格中的单元格被识别为段落。所以我数了他们。
但是,如果我将单词 doc 导出到 html,则不会出现“空”段落(正如您可以在下一个 html 代码中看到的那样)。所以我尝试搜索,但<p>
按顺序无法正确执行:
<tr>
<td width=154 valign=top style='width:115.4pt;border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt'>
<p class=111 style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>NAME</span></p>
</td>
<td width=161 colspan=3 valign=top
style='width:121.05pt;border:solid windowtext 1.0pt; border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=111 style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>SURNAME</span></p>
</td>
<td width=145 valign=top
style='width:108.75pt;border:solid windowtext 1.0pt; border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=111 style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>AGE</span></p>
</td>
</tr>
<tr style='height:12.5pt'>
<td width=154 rowspan=2 valign=top
style='width:115.4pt;border:solid windowtext 1.0pt; border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:12.5pt'>
<p class=111 style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>Francho</span></p>
</td>
<td width=81 rowspan=2 valign=top
style='width:60.5pt;border-top:none; border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:12.5pt'>
<p class=111 style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>García</span></p>
</td>
<td width=81 colspan=2 valign=top
style='width:60.55pt;border-top:none; border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:12.5pt'>
<p class=111 style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>Villarroya</span></p>
</td>
<td width=145 rowspan=2 valign=top
style='width:108.75pt;border-top:none; border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:12.5pt'>
<p class=111 style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>40</span></p>
</td>
</tr>
<tr style='height:12.5pt'>
<td width=40 valign=top
style='width:30.25pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:12.5pt'>
<p class=111 style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>Juan</span></p>
</td>
<td width=40 valign=top
style='width:30.3pt;border-top:none;border-left:none; border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;height:12.5pt'>
<p class=111 style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>Berna</span></p>
</td>
</tr>
<tr>
<td width=154 valign=top
style='width:115.4pt;border:solid windowtext 1.0pt; border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=111 style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>____</span></p>
</td>
<td width=161 colspan=3 valign=top
style='width:121.05pt;border-top:none; border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt'>
<p class=111 style='margin-left:0cm;text-indent:0cm'><span lang=EN-US> </span></p>
</td>
<td width=145 valign=top
style='width:108.75pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt'>
<p class=111 style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>_____ /_____</span></p>
</td>
</tr>
如何跳过“空”单元格?如何在正确的单元格之间挑选出它们?
解决方案
推荐阅读
- python - 如何从普通函数中向 Python Dask 调度程序提交任务
- virtual-machine - 如何在访客上启用 IOMMU
- javascript - 使用 npm 而不是 yarn 安装包时出错
- javascript - 如何将变量传递给正则表达式?
- php - 如何修复 symfony 错误:无法自动装配“App\Controller\ArticleController::create()”的参数 $request?
- php - 试图获取非对象的属性“Nom”
- laravel - 如何在不知道结束日期的情况下创建 CarbonPeriod?
- java - 带有 OR() AND() 语句的 QueryDSL 谓词返回错误结果
- redirect - 企业应用程序的 OAuth2 重定向 URI
- azure - 如何通过 Azure App 服务引用默认证书来配置 IdentityServer4?