公式自动计算相关问题

本文通过代码介绍公式自动计算相关问题

发布于 2012/11/14 00:00

SpreadJS

Spread for Asp.Net 5.0中,可以通过设置ClientAutoCalculation 来控制公式是否自动计算,但是我们经常遇到设置ClientAutoCalculation = true之后,Sum(A1:C1)并没有自动计算,而A1+B1+C1会自动计算。造成该问题的原因是因为Sum公式只对单元格的CellType为数值类型的单元格进行求和运算,而A1+B1+C1这样的公式系统会进行隐式类型转换,将单元格的值转换为数值进行求和运算。

当我们给Spread设置数据源时,一定要注意数据源每列的数据类型一定要是能够进行算术运算的类型,下面代码中Sum(A1:C1) 只计算了A1和C1的值,因为B列的数据类型为String

 
protected void Page_Load(object sender, EventArgs e)

        {

            DataTable dt = new DataTable();

            dt.Columns.Add("col1", typeof(int));

            dt.Columns.Add("col2", typeof(string));

            dt.Columns.Add("col3", typeof(int));

            dt.Columns.Add("col4", typeof(int));



            dt.Rows.Add(1, 2, 3, 4);

            dt.Rows.Add(1, 2, 3, 4);

            dt.Rows.Add(1, 2, 3, 4);

            dt.Rows.Add(1, 2, 3, 4);

            FpSpread1.ActiveSheetView.DataSource = dt;

            FpSpread1.ClientAutoCalculation = true;



            FpSpread1.ActiveSheetView.SetFormula(1, 3, "SUM(A1:C1)");

            FpSpread1.ActiveSheetView.SetFormula(2, 3, "A2+B2+C3");



        }

复制代码

SpreadJS | 下载试用

纯前端表格控件SpreadJS,兼容 450 种以上的 Excel 公式,具备“高性能、跨平台、与 Excel 高度兼容”的产品特性,备受华为、苏宁易购、天弘基金等行业龙头企业的青睐,并被中国软件行业协会认定为“中国优秀软件产品”。SpreadJS 可为用户提供类 Excel 的功能,满足表格文档协同编辑、 数据填报、 类 Excel 报表设计等业务场景需求,极大的降低企业研发成本和项目交付风险。

如下资源列表,可以为您评估产品提供帮助:

相关产品
推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态