表中ContentControl with的getOoxml()和insertOoxml()问题 &



我在一个表中有多个contentcontrol,并试图实现隐藏/显示功能。
隐藏getOoxml()并删除表内的ContentControl。
While Display -InsertOoxml(xml,'Replace')方法在同一个表中再次创建ContentControl。
但我面临以下两个问题。

  1. 如果我做隐藏/显示不止一次(第二次尝试)无法插入作为ContentControl与Ooxml
    和显示为损坏
  2. 在使用Insertooxml (xml、"取代")方法每次都得到额外的段落。

    如果表中没有ContentControl在文档中,它工作得很好。

    有人能帮我解决这些问题吗?

感谢您报告此问题。Bug#6255624>内部轨道。遗憾的是,我们目前没有时间表可以分享。

与其从表中删除内容控件,不如尝试更新Ooxml并为希望隐藏的内容控件添加<w:vanish/>标记?vanish标记将隐藏内容控件,而不是删除它。如果您希望再次显示它,只需删除vanish标签。

const tableCells = tblRowXml[i]?.getElementsByTagName('w:tc');
for (let j = 0; j < tableCells.length; j++) {
let newCellPropertyWpPr = document.createElement('w:pPr');
let newCellPropertyWrPr = document.createElement('w:rPr');
let vanishProperty = '<w:vanish/>';
newCellPropertyWrPr.innerHTML = vanishProperty;
newCellPropertyWpPr.innerHTML = newCellPropertyWrPr.outerHTML;
/* Add vanish nodes to table cell pPr */
const pElement = tableCells[j]?.getElementsByTagName('w:p');
if (pElement[0]) {
pElement[0]?.insertBefore(newCellPropertyWpPr, pElement[0]?.childNodes[0]);
}

/* Add vanish nodes to table cell rPr */
const rElement = tableCells[j]?.getElementsByTagName('w:r');
if (rElement[0]) {
rElement[0]?.insertBefore(newCellPropertyWrPr, rElement[0]?.childNodes[0]);
}

我们在word外接程序中也做了类似的操作,如果包含所有零值,我们将隐藏整个表行。

最新更新