XLSX

公式

普通公式、共享公式和数组公式

普通公式

为单元格设置公式,并可选提供缓存结果值:

{
  "worksheets": [
    {
      "name": "Sheet1",
      "children": [
        {
          "cells": [
            { "value": "Apples" },
            { "value": 10 },
            { "value": 2.5 },
            { "formula": { "formula": "B2*C2" }, "value": 25 }
          ]
        },
        {
          "cells": [
            { "value": "Bananas" },
            { "value": 5 },
            { "value": 3.0 },
            { "formula": { "formula": "B3*C3" }, "value": 15 }
          ]
        },
        {
          "cells": [
            { "value": "Total" },
            { "formula": { "formula": "SUM(B2:B3)" } },
            { "formula": { "formula": "SUM(C2:C3)" } },
            { "formula": { "formula": "SUM(D2:D3)" } }
          ]
        }
      ]
    }
  ]
}

省略 value 时 Excel 会在打开时自动重新计算。

共享公式

当多个单元格使用相同结构的公式时,可用共享公式减少重复:

{
  "worksheets": [
    {
      "name": "Sheet1",
      "children": [
        { "cells": [{ "value": "X" }, { "value": "Y" }, { "value": "X+Y" }] },
        {
          "rowNumber": 2,
          "cells": [
            { "value": 1 },
            { "value": 2 },
            {
              "reference": "C2",
              "formula": {
                "formula": "A2+B2",
                "type": "shared",
                "reference": "C2:C4",
                "sharedIndex": 0
              },
              "value": 3
            }
          ]
        },
        {
          "rowNumber": 3,
          "cells": [
            { "value": 4 },
            { "value": 5 },
            {
              "reference": "C3",
              "formula": { "formula": "", "type": "shared", "sharedIndex": 0 },
              "value": 9
            }
          ]
        },
        {
          "rowNumber": 4,
          "cells": [
            { "value": 6 },
            { "value": 7 },
            {
              "reference": "C4",
              "formula": { "formula": "", "type": "shared", "sharedIndex": 0 },
              "value": 13
            }
          ]
        }
      ]
    }
  ]
}

共享公式的要点:

  • 定义单元格:包含公式文本、reference(覆盖完整范围)和 sharedIndex
  • 后继单元格formula 为空字符串,相同 sharedIndex,不设置 reference

数组公式

数组公式返回一个值数组,覆盖多个单元格:

{
  "worksheets": [
    {
      "name": "Sheet1",
      "children": [
        { "cells": [{ "value": "X" }, { "value": "Y" }] },
        { "cells": [{ "value": 1 }, { "value": 10 }] },
        { "cells": [{ "value": 2 }, { "value": 20 }] },
        {
          "rowNumber": 5,
          "cells": [
            {
              "reference": "A5",
              "formula": { "formula": "A2:A4*B2:B4", "type": "array", "reference": "A5:B6" },
              "value": 10
            },
            {
              "reference": "B5",
              "formula": { "formula": "", "type": "array", "reference": "A5:B6" },
              "value": 100
            }
          ]
        },
        {
          "rowNumber": 6,
          "cells": [
            {
              "reference": "A6",
              "formula": { "formula": "", "type": "array", "reference": "A5:B6" },
              "value": 20
            },
            {
              "reference": "B6",
              "formula": { "formula": "", "type": "array", "reference": "A5:B6" },
              "value": 200
            }
          ]
        }
      ]
    }
  ]
}

数组公式的要点:

  • 定义单元格:包含公式文本和 reference(覆盖所有结果单元格)
  • 后继单元格formula 为空字符串,但仍需相同的 reference
  • 范围内的每个单元格都必须存在,否则 Excel 会报错

FormulaOptions 参考

选项类型说明
formulastring公式表达式,如 "SUM(A1:A10)"
typestring公式类型(默认 "normal",见下表)
referencestring公式范围,如 "C1:C10"
sharedIndexnumber共享公式组索引(共享公式必需)

公式类型:

类型说明
normal普通公式
shared共享公式
array数组公式
Copyright © 2026