找回密码
 立即注册

QQ登录

只需一步,快速开始

西若枫

注册会员

10

主题

28

帖子

112

积分

注册会员

积分
112
西若枫
注册会员   /  发表于:2022-9-28 20:05  /   查看:1103  /  回复:4
1金币
当前的sheet页面内需要获取所有已经填入的值的数据集合类似[{"row":11,"col":5,"value":444},{"row":11,"col":7,"value":999},{"row":12,"col":7,"value":ddd}]

最佳答案

查看完整内容

问题1: 如果您是直接导入了一个文件(如excel文件),且文件内单元格有值,那么经SJS解析后是可以通过getValue,getArray方法获取的,传入相应的参数即可,具体您可以参考前面提供的学习指南链接实际测试下。 问题2: 示例代码如下:

4 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-28 20:05:08
来自 5#
问题1:
如果您是直接导入了一个文件(如excel文件),且文件内单元格有值,那么经SJS解析后是可以通过getValue,getArray方法获取的,传入相应的参数即可,具体您可以参考前面提供的学习指南链接实际测试下。

问题2:
示例代码如下:
  1. var returnData = [];
  2. var usedRange = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.data);
  3. var r = usedRange.row;
  4. var c = usedRange.col;
  5. var rc = usedRange.rowCount;
  6. var cc = usedRange.colCount;
  7. for(var i=r; i<r+rc;i++) {
  8.     for(var j=c;j<c+cc;j++) {
  9.         var cellValue = sheet.getValue(i,j);
  10.         returnData.push({
  11.             row: i,
  12.             col: j,
  13.             value: cellValue
  14.         })
  15.     }
  16. }
  17. console.log(returnData);
复制代码

image.png54744566.png
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-29 11:19:35
2#
您好,
可以使用getValue、getArray方法进行获取表单单元格的value,但是获取的值结构并非您描述中所述,
您可以在获取值后自己拼接生成。
具体可参考学习指南:
https://demo.grapecity.com.cn/sp ... get-set-data/purejs

如果您使用到了数据绑定,则可以使用getDataSource获取修改后的单元格值,具体可参考:
https://gcdn.grapecity.com.cn/fo ... hread&tid=98317
回复 使用道具 举报
西若枫
注册会员   /  发表于:2022-9-29 11:24:47
3#
Lynn.Dou 发表于 2022-9-29 11:19
您好,
可以使用getValue、getArray方法进行获取表单单元格的value,但是获取的值结构并非您描述中所述,
...

getValue,getArray这些方法都是要先set进去的吧,但是我现在就是有一个已经填好数据的excel,我要获取所有有数据的数据值。这些感觉好像不行吧
回复 使用道具 举报
西若枫
注册会员   /  发表于:2022-9-29 11:52:55
4#
Lynn.Dou 发表于 2022-9-29 11:19
您好,
可以使用getValue、getArray方法进行获取表单单元格的value,但是获取的值结构并非您描述中所述,
...

我现在这么写的,是这样循环取吗?let rangeData = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.data);
      let returnData = [];
      if (rangeData) {
        let { colCount = 0, rowCount = 0, col, row } = rangeData;
        for (let i = row; i < rowCount + row; i++) {
          for (let j = col; j < colCount + col; j++) {
            const val = sheet.getValue(i, j);
            if (val) {
              returnData.push({
                col: j,
                row: i,
                newValue: val,
              });
            }
          }
        }
      }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部