找回密码
 立即注册

QQ登录

只需一步,快速开始

admin 讲师达人认证 悬赏达人认证 活字格认证 SpreadJS 开发认证
管理员   /  发表于:2019-3-8 16:37  /   查看:2983  /  回复:0
前言 | 问题背景
数组公式允许您使用公式执行复杂任务。它们允许您一次计算多个单元格的值。您可以使用单个数组公式替换多个标准公式。有关数组公式的一般信息,请访问office网站。SpreadJS支持数组公式,如果允许用户创建公式,则可以在运行时输入公式后使用Ctrl + Shift + Enter创建数组公式,也可以使用setArrayFormula方法。导出或导入Excel格式的文件和JSON对象时,支持数组公式。
但使用数组公式具有以下限制:
  • 数组公式不支持包含合并单元格的范围(range)。
  • 当公式所在单元格属于一个范围(range)时,不允许修改。
  • 剪切和复制适用于整个范围(range)。
  • 无法在范围(range)的一部分中插入或删除列和行。
数组公式示例
数组公式JavaScript代码:使用setArrayFormula方法创建数组公式。
  1. activeSheet.getCell(0,1).hAlign(GcSpread.Sheets.HorizontalAlign.center);  
  2. activeSheet.getCell(0,2).hAlign(GcSpread.Sheets.HorizontalAlign.center);  
  3. activeSheet.getCell(0,3).hAlign(GcSpread.Sheets.HorizontalAlign.center);  
  4. activeSheet.getCell(0,3).text("Result");  
  5. activeSheet.getCell(0,1).text("Column B");  
  6. activeSheet.getCell(0,2).text("Column C");  
  7. activeSheet.getCell(1,1).value(3);  
  8. activeSheet.getCell(2,1).value(1);  
  9. activeSheet.getCell(3,1).value(3);  
  10. activeSheet.getCell(4,1).value(7);  
  11. activeSheet.getCell(1,2).value(7);  
  12. activeSheet.getCell(2,2).value(7);  
  13. activeSheet.getCell(3,2).value(7);  
  14. activeSheet.getCell(4,2).value(7);  
  15. spread.canUserEditFormula(true);  
  16. activeSheet.setArrayFormula(1, 3, 4, 1, "B2:B5*C2:C5");
复制代码
image.png335296935.png
  1. activeSheet.getCell(0, 1).text("Value B");  
  2. activeSheet.getCell(0, 2).text("Value C");  
  3. activeSheet.getCell(6, 0).text("Sum (B*C if B < 5)");  
  4. activeSheet.getColumn(0).width(120);  
  5. spread.canUserEditFormula(true);  
  6. activeSheet.getCell(0,1).hAlign(GcSpread.Sheets.HorizontalAlign.center);  
  7. activeSheet.getCell(0,2).hAlign(GcSpread.Sheets.HorizontalAlign.center);  
  8. activeSheet.getCell(0,3).hAlign(GcSpread.Sheets.HorizontalAlign.center);  
  9. activeSheet.getCell(1,1).value(4);  
  10. activeSheet.getCell(1,2).value(3);  
  11. activeSheet.getCell(2,1).value(2);  
  12. activeSheet.getCell(2,2).value(2);  
  13. activeSheet.getCell(3,1).value(5);  
  14. activeSheet.getCell(3,2).value(7);  
  15. activeSheet.getCell(4,1).value(6);  
  16. activeSheet.getCell(4,2).value(2);  
  17. activeSheet.setArrayFormula(6, 2, 1, 1, "Sum(IF(B2:B5<5,B2:B5*C2:C5))");
复制代码
使用公式文本框时,可以使用Ctrl + Shift + Enter创建数组公式。在运行时编辑或创建公式时,将显示公式文本框。键入公式,如下图所示。
在单元格中键入的公式然后按Ctrl + Shift + Enter将公式更改为数组公式,如下图所示。





0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部