如何使用office js设置table宽度百分比
How to set table width percentage using office js
我正在处理 Office JS word 插件项目。
我正在创建一个包含 4 列的 table。我想将宽度百分比分别设置为 30%、30%、20%、20%。我怎样才能像这样设置 table 宽度百分比。下面是我用于 table 创建
的示例代码
function createTable() {
Word.run(function (context) {
var body = context.document.body;
var Table = body.insertTable(2, array.length, Word.InsertLocation.start, [array]);
return context.sync();
})
.catch(errorHandler);
}
Word JS API 没有能力(还)指定 table 的列应该如何表现。它只是采用默认值,这意味着列将根据其内容进行调整。
所以唯一的解决办法是使用 Word Open XML。最简单的可能是使用 Word JS API 的 OOXML 方法插入整个 table(至少是基本结构),而不是尝试更改(替换)现有的 table。
列宽设置为百分比时,由定义 table 的多个元素控制。这个link到OfficeOpenXML.com可能有用。
以下 Word Open XML,使用 COM 对象模型和 属性 Table.Range.WordOpenXML
生成,说明了 table 的基本 table 结构格式为页面宽度的百分比 (w:tblW
),单元格为 table 宽度的百分比 (w:tcW
)。 table 有两列,设置为 20% 和 80%。请注意,Word 会根据其布局算法对百分比进行最低限度的调整,因此实际使用的百分比始终是一个近似值。
w:gridCol
设置也反映了这些比例。
除了百分比,w:type
属性也很重要。它告诉 Word 如何解释宽度设置:w:type="pct"
指定 "percent"。
这些值可能看起来很大,那是因为它们是 五分之一百分比。所以 5000 是 100%。
<w:tbl>
<w:tblPr><w:tblStyle w:val="TableGrid"/>
<w:tblW w:w="5000" w:type="pct"/>
<w:tblLayout w:type="fixed"/>
<w:tblLook w:val="04A0" w:firstRow="1" w:lastRow="0" w:firstColumn="1" w:lastColumn="0" w:noHBand="0" w:noVBand="1"/>
</w:tblPr>
<w:tblGrid><w:gridCol w:w="944"/><w:gridCol w:w="3700"/></w:tblGrid>
<w:tr>
<w:tc><w:tcPr><w:tcW w:w="1016" w:type="pct"/></w:tcPr>
<w:p/>
</w:tc><w:tc><w:tcPr><w:tcW w:w="3984" w:type="pct"/></w:tcPr>
<w:p/>
</w:tc><
/w:tr>
</w:tbl>
在table下使用autoFitWindow()函数。
我正在处理 Office JS word 插件项目。 我正在创建一个包含 4 列的 table。我想将宽度百分比分别设置为 30%、30%、20%、20%。我怎样才能像这样设置 table 宽度百分比。下面是我用于 table 创建
的示例代码function createTable() {
Word.run(function (context) {
var body = context.document.body;
var Table = body.insertTable(2, array.length, Word.InsertLocation.start, [array]);
return context.sync();
})
.catch(errorHandler);
}
Word JS API 没有能力(还)指定 table 的列应该如何表现。它只是采用默认值,这意味着列将根据其内容进行调整。
所以唯一的解决办法是使用 Word Open XML。最简单的可能是使用 Word JS API 的 OOXML 方法插入整个 table(至少是基本结构),而不是尝试更改(替换)现有的 table。
列宽设置为百分比时,由定义 table 的多个元素控制。这个link到OfficeOpenXML.com可能有用。
以下 Word Open XML,使用 COM 对象模型和 属性 Table.Range.WordOpenXML
生成,说明了 table 的基本 table 结构格式为页面宽度的百分比 (w:tblW
),单元格为 table 宽度的百分比 (w:tcW
)。 table 有两列,设置为 20% 和 80%。请注意,Word 会根据其布局算法对百分比进行最低限度的调整,因此实际使用的百分比始终是一个近似值。
w:gridCol
设置也反映了这些比例。
除了百分比,w:type
属性也很重要。它告诉 Word 如何解释宽度设置:w:type="pct"
指定 "percent"。
这些值可能看起来很大,那是因为它们是 五分之一百分比。所以 5000 是 100%。
<w:tbl>
<w:tblPr><w:tblStyle w:val="TableGrid"/>
<w:tblW w:w="5000" w:type="pct"/>
<w:tblLayout w:type="fixed"/>
<w:tblLook w:val="04A0" w:firstRow="1" w:lastRow="0" w:firstColumn="1" w:lastColumn="0" w:noHBand="0" w:noVBand="1"/>
</w:tblPr>
<w:tblGrid><w:gridCol w:w="944"/><w:gridCol w:w="3700"/></w:tblGrid>
<w:tr>
<w:tc><w:tcPr><w:tcW w:w="1016" w:type="pct"/></w:tcPr>
<w:p/>
</w:tc><w:tc><w:tcPr><w:tcW w:w="3984" w:type="pct"/></w:tcPr>
<w:p/>
</w:tc><
/w:tr>
</w:tbl>
在table下使用autoFitWindow()函数。