【问题标题】:How to set table width percentage using office js如何使用office js设置表格宽度百分比
【发布时间】:2019-10-18 08:03:45
【问题描述】:

我正在开发 Office JS word 插件项目。 我正在创建一个有 4 列的表。我想将宽度百分比分别设置为 30%、30%、20%、20%。我怎样才能像这样设置表格宽度百分比。下面是我用于创建表的示例代码

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);
}

【问题讨论】:

    标签: ms-word office-js add-in word-addins


    【解决方案1】:

    Word JS API(目前)还没有能力指定表格的列应该如何表现。它只是假定默认值,这意味着列将根据其内容进行调整。

    因此,唯一的解决方案是使用 Word Open XML。最简单的可能是使用 Word JS API 的 OOXML 方法插入整个表(至少是基本结构),而不是尝试更改(替换)现有表。

    当设置为百分比时,列宽由定义表格的许多元素控制。这个link 到 OfficeOpenXML.com 可能有用。

    以下使用 COM 对象模型和属性 Table.Range.WordOpenXML 生成的 Word Open XML 说明了表格的基本表格结构,表格格式为页面宽度的百分比 (w:tblW),单元格的格式为表格的宽度 (w:tcW)。该表有两列,分别设置为 20% 和 80%。请注意,Word 会根据其布局算法对百分比进行最低限度的调整,因此使用的实际百分比始终为近似值。

    w:gridCol 设置也反映了这些比例。

    除了百分比之外,w:type 属性也很重要。它告诉 Word 如何解释宽度设置:w:type="pct" 指定“百分比”。

    这些值可能看起来很大,这是因为它们是 五分之一的百分比。所以 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>
    

    【讨论】:

    • 同意,但我的表创建将根据我从一个 api 收到的数据是动态的。这个 api 将为我提供所有列值以及宽度。在 OOXML 中,我需要设置一个预定义的模板,并且将根据该表定义绘制表。如何动态设置宽度并绘制表格?
    • 查看我刚刚写的关于数据部分的问题的回复。如果您没有将数据“循环”到 XML 中的背景知识,那么您需要退后一步学习这一点。这是一个多方面的话题,对于 Stack Overflow 来说太宽泛了。
    猜你喜欢
    • 2012-01-17
    • 2013-03-24
    • 2012-10-03
    • 2016-08-20
    • 2013-03-12
    • 1970-01-01
    • 2011-01-08
    • 2017-10-19
    相关资源
    最近更新 更多