找回密码
 立即注册

QQ登录

只需一步,快速开始

Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-3 14:32:46
11#

您好,对原demo进行了修改,详见附件。核心代码如下:
  1. var table = sheet.tables.addFromDataSource('table1', 0, 0, dataSource);
  2.            
  3.             table.setColumnDataFormula(18, "=[@A价格(含税)]*[@11月预估数量]");
  4.             table.setColumnDataFormula(19, "=[@A价格(含税)]*[@12月预估数量]");
  5.             table.setColumnDataFormula(20, "=[@A价格(含税)]*[@1月预估数量]");
  6.             sheet.recalcAll()
复制代码

结果如下图所示:

image.png274539794.png
相关知识点推荐阅读学习指南:https://demo.grapecity.com.cn/sp ... /basic-table/purejs
addFromDataSource API链接:https://demo.grapecity.com.cn/sp ... l#addFromDataSource

demo.html

5.25 KB, 下载次数: 44

回复 使用道具 举报
一蓑烟雨
初级会员   /  发表于:2020-11-3 15:34:40
12#
您好,按照您给出的方法试了一下,页面报错,问题是出在sheet.tables.addFromDataSource('table1', 0, 0, dataSource);这个方法上面。我把我修改后的demo上传一下。
企业微信截图_16043887714958.png

demo.zip

1.52 KB, 下载次数: 58

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-3 15:43:15
13#
上面的回答中上传了附件,您可以打开看下。
另附上完整代码:
  1. $(function () {
  2.             //数据源
  3.             var dataSource = '[{"销售部门":"晋陕","销售部代码":"6027","销售部":"陕西销售部(厨卫)","物料编码":"565102146098","物料名称":"立邦甄彩美缝剂(月光银)-10支","层次一":"厨卫","层次二":"填缝类","层次三":"立邦","层次四":"美缝剂","层次五":"立邦甄彩美缝剂","规格":"10支/箱","A价格(含税)":1,"去年月均":0,"10月实际数量":0,"10月实际金额(未税)":0,"11月预估数量":2,"12月预估数量":0,"1月预估数量":0,"11月预估金额(未税)":0,"12月预估金额(未税)":0,"1月预估金额(未税)":0},{ "销售部门": "晋陕", "销售部代码": "6027", "销售部": "陕西销售部(厨卫)", "物料编码": "503400296002", "物料名称": "靓彩易涂防水-华耐专供", "层次一": "厨卫", "层次二": "防水类", "层次三": "乐可施", "层次四": "通用防水", "层次五": "乐可施经典通用防水", "规格": "18KG", "A价格(含税)": 130, "去年月均": 0, "10月实际数量": 0, "10月实际金额(未税)": 0, "11月预估数量": 2, "12月预估数量": 2, "1月预估数量": 2, "11月预估金额(未税)": 0, "12月预估金额(未税)": 0, "1月预估金额(未税)": 0 }]';

  4.             dataSource = JSON.parse(dataSource);

  5.             var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
  6.             var sheet = spread.getActiveSheet();
  7.             sheet.setColumnCount(30); // 初始化默认列数 < 数据源,所以先设置好列数,再执行下面这句代码
  8.             //创建表格
  9.             var table = sheet.tables.addFromDataSource('table1', 0, 0, dataSource);
  10.            
  11.             table.setColumnDataFormula(18, "=[@A价格(含税)]*[@11月预估数量]");
  12.             table.setColumnDataFormula(19, "=[@A价格(含税)]*[@12月预估数量]");
  13.             table.setColumnDataFormula(20, "=[@A价格(含税)]*[@1月预估数量]");
  14.             sheet.recalcAll()
  15.         });
复制代码


回复 使用道具 举报
一蓑烟雨
初级会员   /  发表于:2020-11-3 16:12:04
14#
您好,非常感谢您的指导,已经可以了,另外我还想问一下,使用这个方法后页面的背景颜色改变了,能否通过设置颜色恢复为白色?请问是哪个API?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-3 16:58:46
15#
本帖最后由 lynn512 于 2020-11-3 17:00 编辑

添加以下代码即可:

//创建表格
var table = sheet.tables.addFromDataSource('table1', 0, 0, dataSource);

//添加以下两句代码
table.style(undefined)
sheet.repaint()

           
table.setColumnDataFormula(18, "=[@A价格(含税)]*[@11月预估数量]");
table.setColumnDataFormula(19, "=[@A价格(含税)]*[@12月预估数量]");
table.setColumnDataFormula(20, "=[@A价格(含税)]*[@1月预估数量]");
sheet.recalcAll()
回复 使用道具 举报
一蓑烟雨
初级会员   /  发表于:2020-11-3 17:26:02
16#
非常感谢!
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-3 17:37:40
17#
您客气了,问题解决了就好~那本帖就先结帖了,有新问题的话可以另开新帖。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部