Excel JS API-将精确范围值,格式和公式复制并存储在json文件中,以便以后使用以生成相同范围的值

问题描述

使用office js api,您可以将一系列单元格复制到另一个单元格中,并使用类似于以下代码的形式保留值,公式和格式中的所有内容:

sheet.getRange(“A1”).copyFrom("M9:R424");

我想复制此功能,而不是将单元格的值,公式和格式存储在excel文件中,而是将它们存储在json文件中(位于应用程序外部的db中),以便可以根据需要动态创建带有范围/单元格的工作表,以减小excel文件的大小并确保用户不会意外编辑模板范围。

到目前为止,我已经能够从json复制值和公式,但是在格式方面遇到了麻烦。您可以从范围中获取一个格式对象:

range.format

但是当我使用以下方式将这种格式转换为json时

range.format.toJSON()

缺少大量参数(例如,单元格填充颜色,边框轮廓)。

有人知道一种将范围格式转换为json或存储和复制此数据的最佳方法吗?

解决方法

我们有RangeFillRangeBorderCollection类,您可以使用toJSON() API来获取单元格填充颜色和边框颜色。

  await Excel.run(async (context) => {

    var range = context.workbook.getActiveCell();
    range.format.fill.load();
    range.format.borders.load();
    await context.sync();

    var JSON = range.format.fill.toJSON();
    var JSON2 = range.format.borders.toJSON();

    console.log(JSON);
    console.log(JSON2);

  });

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...