找回密码
 立即注册

QQ登录

只需一步,快速开始

太阳神

注册会员

3

主题

6

帖子

27

积分

注册会员

积分
27
  • 75

    金币

  • 3

    主题

  • 6

    帖子

最新发帖
太阳神
注册会员   /  发表于:2024-4-24 10:43  /   查看:198  /  回复:3
本帖最后由 Richard.Huang 于 2024-4-26 11:45 编辑
  1. window.Spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'));
  2. window.ExcelIo = new GC.Spread.Excel.IO();
  3. var data = [
  4.       [1, 2, '=A2 + B2'], // 这里的表达式在 页面中显示为了字符串
  5.       [3, 4, '=A3 + B3']
  6. ];
  7. var sheet = window.Spread.getActiveSheet();

  8. // 将数据源加载到工作表
  9. sheet.setArray(0, 0, data);
复制代码


请问如何让数据中的公式 加载后直接解析成公式呢?
image.png375147094.png

3 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-24 11:01:18
沙发
您好,建议您将您的A1:B2部分值和C1:C2部分公式分开进行设置,setArray第四个参数用于表示您设置进去的内容是公式还是值,因此您可以这样做
  1. var data1 = [
  2.   [1, 2], // 这里的表达式在 页面中显示为了字符串
  3.   [3, 4],
  4. ];
  5. sheet.setArray(0, 0, data1);
  6. var data2 = [
  7.   ["=A2 + B2"], // 这里的表达式在 页面中显示为了字符串
  8.   ["=A3 + B3"],
  9. ];
  10. sheet.setArray(0, 2, data2, true);
复制代码
image.png800870055.png
API参考:https://demo.grapecity.com.cn/sp ... .Worksheet#setarray

评分

参与人数 1满意度 +5 收起 理由
太阳神 + 5

查看全部评分

回复 使用道具 举报
太阳神
注册会员   /  发表于:2024-4-24 11:19:36
板凳
Richard.Huang 发表于 2024-4-24 11:01
您好,建议您将您的A1:B2部分值和C1:C2部分公式分开进行设置,setArray第四个参数用于表示您设置进去的内容 ...

谢谢解答,确实起了作用,再请问下,如果表格数据比较大的话,需要单独分离出含有公式部分的单元格 数组,有没有什么方法可以一次性进行数据加载(数据和公式同时加载)的?
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-24 17:56:09
地板
太阳神 发表于 2024-4-24 11:19
谢谢解答,确实起了作用,再请问下,如果表格数据比较大的话,需要单独分离出含有公式部分的单元格 数组 ...

您好,值和公式确实不能一次setArray就设置好,
因为当单元格的value也是以 = 开头时,程序无法区分到底用户想设置的是公式还是值。
如果您确实有这样的需求,建议自己封装一个方法,去解析您的数组中具体的每个元素是公式还是值,让后分别用setFormula和setValue去填充值

例如如果单元格的value以=开头(=A1+B1)就执行setFormula,如果不是就执行setValue

评分

参与人数 1满意度 +5 收起 理由
太阳神 + 5

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部