找回密码
 立即注册

QQ登录

只需一步,快速开始

Jun2005

注册会员

17

主题

57

帖子

168

积分

注册会员

积分
168
Jun2005
注册会员   /  发表于:2022-7-28 09:47  /   查看:2561  /  回复:7
1金币
workbook.setEnableCalculation(true);和 workbook.processTemplate(); 这个2个方法有什么区别,如果都是执行计算公式 setEnableCalculation后 还需要调用 processTemplate() 吗


比如我前端传几千行数据到后端 执行gcexcel的公式链计算
后端获取到模板和数据后(数据和模板分开)
第一步 我先formJson 模板


第二步 把值赋值setValue到sheet的行


第三步执行 workboot.setEnableCalculation 还是 processTemplate() ?


第四步 worksheet.getRange(xxx).getValue();获取计算后的数据


第五步 返回二维数组到前端。


需要后端执行 gcexcel计算 我是调用 setEnableCalculation 还是 processTemplate

最佳答案

查看完整内容

setEnableCalculation是设置计算引擎的开关,计算引擎用于公式计算。 processTemplate是GcExcel的templates功能(非ssjson相关)其中的一个接口,用于表示开始模板的处理过程(填充数据,生成等)。跟公式计算没有任何关系。 如果需要了解templates相关功能,可以参考下面的demo示例: https://demo.grapecity.com.cn/documents-api-excel-java/demos/templates

7 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-7-28 09:47:06
来自 2#
setEnableCalculation是设置计算引擎的开关,计算引擎用于公式计算。
processTemplate是GcExcel的templates功能(非ssjson相关)其中的一个接口,用于表示开始模板的处理过程(填充数据,生成等)。跟公式计算没有任何关系。
如果需要了解templates相关功能,可以参考下面的demo示例:
https://demo.grapecity.com.cn/do ... ava/demos/templates
回复 使用道具 举报
Jun2005
注册会员   /  发表于:2022-7-28 11:43:54
3#
Clark.Pan 发表于 2022-7-28 11:23
setEnableCalculation是设置计算引擎的开关,计算引擎用于公式计算。
processTemplate是GcExcel的template ...

setEnableCalculation 是在 开始就 调用 还是 最后一步才调用?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-7-28 11:45:46
4#
本帖最后由 Clark.Pan 于 2022-7-28 12:58 编辑

getValue前调用都可以,猜测setValue的数据会被用作公式计算,所以getValue之前需要开启公式计算,否则公式将不会进行计算。拿到getValue的结果也可能不正确
回复 使用道具 举报
Jun2005
注册会员   /  发表于:2022-7-28 11:51:18
5#
Clark.Pan 发表于 2022-7-28 11:45
getValue调用都可以,猜测setValue的数据会被用作公式计算,所以getValue之前需要开启公式计算,否则公式将 ...

Workbook workbook = new Workbook();
workbook.fromJson(gcexcelJsonTemplateOriginal);
workbook.setEnableCalculation(true);

我这样就可以了吧 不用 setValue 后再调用吧?
还是 setValue后再调用 workbook.setEnableCalculation(true);?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-7-28 13:32:12
6#
不用,只要在getValue之前调用,都可以。不过作为设置建议放到前面方便代码阅读
回复 使用道具 举报
Jun2005
注册会员   /  发表于:2022-7-28 13:59:08
7#
Clark.Pan 发表于 2022-7-28 13:32
不用,只要在getValue之前调用,都可以。不过作为设置建议放到前面方便代码阅读

好的 谢谢!@!!!
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-7-28 14:34:58
8#
那就结贴了,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部