[{"id":"1b88a165-2563-437e-99bb-ae30bd4b56db","tags":[{"name":"更新","color":"Coral","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"a2f84374-4a3f-4d22-96fd-765e9de495bf"}]},{"id":"a244ead7-a2c6-47a3-ac17-c5dbfa337362","tags":[{"name":"更新","color":"Coral","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"a2f84374-4a3f-4d22-96fd-765e9de495bf"}]},{"id":"33638a1c-7196-42c1-a96d-38b2d9ba8ac4","tags":[{"name":"更新","color":"Coral","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"a2f84374-4a3f-4d22-96fd-765e9de495bf"}]},{"id":"8e72e33e-b4ab-4fb3-98fc-a0b148134aed","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"86662220-9b9e-4940-9ced-d22642ea49a8","tags":[{"name":"更新","color":"Coral","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"a2f84374-4a3f-4d22-96fd-765e9de495bf"}]},{"id":"55fd3bb8-18d4-4edb-9640-ca3a365b798f","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"760b37c7-c713-4b24-b9ba-4bfe7d8437a6","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"3a083583-1d5f-492b-b450-34b2b5c775b8","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"04e73782-aa78-4dfe-a4f9-e72ed4c78a11","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"57c94653-8893-403b-a5b1-0d1e33a0bd0f","tags":[{"name":"更新","color":"Coral","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"a2f84374-4a3f-4d22-96fd-765e9de495bf"}]},{"id":"09a66339-64c0-415c-b142-0691587a8e4a","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"5b7aeac5-c755-426a-95c7-1ae8e547179a","tags":[{"name":"更新","color":"Coral","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"a2f84374-4a3f-4d22-96fd-765e9de495bf"}]},{"id":"790bc77a-9216-48fd-b8f9-fbc374ebb155","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"900e6cab-065d-4f1c-844d-efa3c074e270","tags":[{"name":"更新","color":"Coral","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"a2f84374-4a3f-4d22-96fd-765e9de495bf"}]},{"id":"0baaf91d-84f6-404c-a487-735226b6d5b6","tags":[{"name":"更新","color":"Coral","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"a2f84374-4a3f-4d22-96fd-765e9de495bf"}]},{"id":"5d37413b-3600-4da9-9700-feea54355f59","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"7ded3a22-15eb-49b8-a488-e83c2cd872eb","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"89c707ed-9841-4e53-96fb-940cc3214804","tags":[{"name":"更新","color":"Coral","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"a2f84374-4a3f-4d22-96fd-765e9de495bf"}]},{"id":"a570c8e7-07a2-47da-965b-da44fd1fa5cf","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"a5a73576-16ea-4cbc-925c-ef547389eaa5","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"69e79655-e015-4f9a-a230-2a25c988c926","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"adf3817f-7667-4a4c-8a5f-767b0b7e1e3e","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"1126cfab-6210-4e28-bee0-02c113fb7a0c","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"63c577e6-6cf9-497e-94e1-2307f7d3f498","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"24769ecd-2b08-4a85-b318-4f533bbf8393","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"2605431b-dc80-491d-886e-28981595d277","tags":[{"name":"更新","color":"Coral","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"a2f84374-4a3f-4d22-96fd-765e9de495bf"}]},{"id":"4f41e22e-eb51-49e5-aeae-a42dd6bf352c","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"aa71a884-c5bc-4842-8d6a-873dfd645167","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"b0576ca2-cb84-4390-9f95-9354ec20eda5","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"dacc7931-6785-4675-be31-80930403cf7b","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"c90d5fdf-420f-4978-8bf5-c9a2bb4334b3","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"6e6ac5b1-1501-4e28-89cc-525139488537","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"ff052704-1389-4029-bcdd-73c6cbe9f807","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"21c6131f-0f2d-41d1-9284-6ad9ee803c1f","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"64e2f4a3-2303-4bfa-8a93-6c23ef01de58","tags":[{"name":"新增","color":"DarkGreen","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"9e117e35-984a-4c14-95ca-ef0ec7b9fb60"}]},{"id":"4a0842a3-20b1-40c3-8e00-cd5941ffdf53","tags":[{"name":"更新","color":"Coral","productId":"098be112-50ec-44e4-b746-6bc8bf76af97","links":null,"id":"a2f84374-4a3f-4d22-96fd-765e9de495bf"}]}]
        
(Showing Draft Content)

计算模式

SpreadJS 会在依赖值(公式中引用的单元格、值或名称)发生变化时自动更新公式。然而,如果你希望控制何时重新计算公式,而不是在引用单元格发生变化后立即进行计算,你可以将自动计算切换为手动计算。SpreadJS API 中的 CalculationMode 枚举允许你设置自动或手动的计算选项。


CalculationMode 设置为 auto 时(默认模式),SpreadJS 会在每次引用的单元格发生改变时自动计算所有被修改的单元格。例如,在剪切粘贴或输入单元格时。

需要注意的是,SpreadJS 将修改过的单元格视为脏单元格,并且需要进行重新计算。

另一方面,当 CalculationMode 设置为手动(manual) 时,SpreadJS 仅在你明确请求时计算和更新公式。

这在你有一个包含许多复杂公式的大型工作表中,并且希望避免频繁的重新计算以提高性能和响应速度时非常有用。例如,在剪切或粘贴值时,SpreadJS会重置公式和单元格的值,但不会重新计算任何公式。

注意:SpreadJS 在导出到 Excel 时支持 CalculationMode 选项。

以下代码示例展示了如何在初始化工作簿时设置手动计算选项。

// Switch to manual mode when initializing the workbook.
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {calculationMode: GC.Spread.Sheets.CalculationMode.manual});

// Or
spread.options.calculationMode = GC.Spread.Sheets.CalculationMode.manual;

一旦切换到手动计算模式,你需要使用calculate()方法手动更新工作表中的公式,该方法接受CalculationType枚举值作为参数。

CalculationType枚举指定计算类型,其可用成员如下所示:

成员

描述

all

将范围内的所有单元格标记为需要进行计算。

这是默认的计算类型。

rebuild

重建范围内的所有公式,并将它们标记为需要进行计算。

minimal

将公式标记为需要进行计算,但不会标记易变单元格和循环引用单元格。

regular

将易变单元格和循环引用单元格标记为需要进行计算。

请查看下表,了解当使用自动和手动计算模式时,SpreadJS在不同的公式及其依赖关系上的行为。

使用的公式

自动计算(默认模式)

手动计算

suspendCalcService(true)

禁用计算引擎,不对任何单元格进行重新计算。

resumeCalcService(false)

启用计算引擎,并计算易变单元格、循环引用单元格和脏单元格。

启用计算引擎,标记易变单元格为脏单元格,但不计算脏单元格。

resumeCalcService(true)

启用计算引擎,并计算所有单元格。

启用计算引擎,将所有单元格标记为脏单元格,但不计算脏单元格。

resumeCalcService(false)

sheet.setFormula

计算公式及其依赖关系。

计算公式。

resumeCalcService(false)

spread.calculate()

计算所有打开的工作表中的所有公式。

resumeCalcService(false)

spread.calculate(GC.Spread.Sheets.CalculationType.regular)

计算所有被标记为脏单元格的单元格,即依赖于易变或更改的数据的单元格,以及通过编程方式标记为脏单元格的单元格。

resumeCalcService(false)

spread.calculate(GC.Spread.Sheets.CalculationType.rebuild)

重建工作表中的所有公式,然后计算它们。

resumeCalcService(false)

spread.calculate(null, “Sheet1“)

将Sheet1中的所有公式标记为脏单元格,并标记范围之外的依赖关系为脏单元格。

计算所有脏单元格。

将Sheet1中的所有公式标记为脏单元格,并标记范围之外的依赖关系为脏单元格。

计算Sheet1中的脏单元格。

保持其他单元格的脏状态。

注意:从SpreadJS v16.2版本开始,已弃用了 sheet.recalcAll() 方法来重新计算单元格中的公式。你可以使用 spread.calculate() 来替代。

以上是在SpreadJS中使用不同计算模式和类型进行各种计算的示例代码。

spread.sheets[0].setFormula(0,0,"RAND()"); // Sheet1!A1
spread.sheets[0].setFormula(1,0,"=Sheet2!A1"); // Sheet1!A2
spread.sheets[0].setFormula(2,0,"=1+2"); // Sheet1!A3
spread.sheets[1].setFormula(0,0,"RAND()"); // Sheet2!A1
spread.sheets[1].setFormula(1,0,"=Sheet1!A1"); // Sheet2!A2

// 重新计算所有单元格。
spread.calculate(); 
spread.calculate(GC.Spread.Sheets.CalculationType.regular); 

// Sheet1!A1和Sheet2!A2将被计算为新的数字,并计算Sheet1!A2和Sheet1!A3。
spread.calculate(GC.Spread.Sheets.CalculationType.all, "Sheet1"); 

// Sheet1!A1和Sheet2!A2将被计算为新的数字。
spread.calculate(GC.Spread.Sheets.CalculationType.regular, "Sheet1!A1"); 

// 没有单元格会被计算。
spread.calculate(GC.Spread.Sheets.CalculationType.regular, "Sheet1!A2"); 

// Sheet1!A1将被计算为新的数字,Sheet1!A2和Sheet1!A3将被计算但不会发生变化,Sheet2!A2在手动模式下保持脏状态。
spread.calculate(GC.Spread.Sheets.CalculationType.all, "Sheet1"); 

// Sheet1!A1将被计算为新的数字,Sheet2!A2在手动模式下保持脏状态。
spread.calculate(GC.Spread.Sheets.CalculationType.regular, "Sheet1"); 

// Sheet2!A2将被计算,因为它是脏的。
spread.calculate(GC.Spread.Sheets.CalculationType.minimal);

使用设计器

您可以使用 SpreadJS 设计器设置所需的计算选项。在 公式 > 计算 选项卡组中,选择 "计算选项" 按钮。

image

在手动计算模式下,您需要选择要重新计算的工作簿部分。

  • 单击 "Calculate Now" 按钮以更新所有打开的工作表中的更改。

  • 如果只想在同一工作表中反映修改,请单击 "Calculate Sheet" 按钮。

CalculateNow.e35c34

  • 如果您只想在同一工作表中反映修改,请单击“Calculate Sheet”按钮。

CalculateSheet.389d98