【问题标题】:Using Office.js, how to get the exact styling of a table in Excel使用 Office.js,如何在 Excel 中获取表格的确切样式
【发布时间】:2019-07-12 22:40:20
【问题描述】:

我正在使用 Office.js 为 Excel 创建加载项。

我能够获得范围内单个单元格的确切样式(填充颜色、字体大小、边框等),现在需要对表格单元格执行相同的操作。

我可以得到table's style,然后得到style's properties。但是,除了仅从 ExcelAPI 1.7 起才支持这一事实之外,它似乎只是笼统地描述了样式。也就是说,它似乎没有描述详细的表格样式属性,例如“第一行条纹”、“总行”等。

(请注意,获取表格的单个单元格样式并不适用于范围单元格。样式属性,例如 fill.color,如果单元格的样式来自表格基本样式没有被覆盖。)

我考虑过的事情:

  • Convert the table to a range。但我想这会对工作表造成破坏,而且我看不到执行撤消的方法。
  • 将表格转换为范围和back to a table again。这也是破坏性的,恐怕我无法像以前那样完全重新创建表格。
  • Create a copy of the worksheet 然后将表格转换为范围。这可以工作,但它只是 ExcelAPI 1.7。
  • 从文件的 OOXML 表示中读取原始样式信息但我认为仅使用 Office.js 是不可能的

关于如何仅使用 Office.js 并使用尽可能低的 API 版本获取 Excel 表格的确切样式信息有什么建议吗?


编辑:事实证明,我们确实可以使用 Office.context.document.getFileAsync 方法通过 Office.js 访问整个 .xlsx 文件。我会尝试通过阅读xl/styles.xml 文件来获取完整的样式信息,但我仍然希望有更好的解决方案。

【问题讨论】:

    标签: excel office-js


    【解决方案1】:

    您仍然可以从要处理的表中获取范围。例如, 变量范围 = worksheet.getRange("A1:E1")。

    虽然“A1:E1”是表格的一部分,但您仍然可以将该区域作为范围获取并执行进一步的操作。

    【讨论】:

    • 没错,但就像我在问题中提到的那样,表格单元格已使用基本表格样式设置样式并且对于给定的单元格或组没有其他样式覆盖(例如边框、填充等)单元格,返回“空”样式信息。具体的表格单元格样式必须通过表格样式的定义来推断。
    • 感谢您的澄清。你是对的。目前不返回表格样式信息。我会将这个项目记录到团队中。似乎您的解决方法是目前的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多