找回密码
 立即注册

QQ登录

只需一步,快速开始

亦雨

注册会员

1

主题

1

帖子

4

积分

注册会员

积分
4
  • 12

    金币

  • 1

    主题

  • 1

    帖子

最新发帖
亦雨
注册会员   /  发表于:2022-2-18 13:18  /   查看:1862  /  回复:1
在Excel中打开的文档里,有的单元格引用了外部的地址,在spreadjs里会显示成#REF。我想要保留这个公式,保存到本地后依然不变,我想用社区的方法,使用getFormula得到公式的值替换上去,但是显示出来原本的路径变成了一个数字[2]。请问这个路径我要怎么保存下来呀


  1.       excelIO.open(this.excelFile, function (json) {
  2.         // self.spread.fromJSON(json)
  3.         var workbookObj = json
  4.         var tempspread = new GC.Spread.Sheets.Workbook()
  5.         tempspread.fromJSON(workbookObj, { ignoreFormula: true })
  6.         self.spread.fromJSON(workbookObj)
  7.         console.log(tempspread.getSheet(0))
  8.         // console.log(self.spread)
  9.         // debugger
  10.         for (var i = 0; i < tempspread.getSheetCount(); i++) {
  11.           // var sheet = tempspread.getSheet(i)
  12.           var colcount = tempspread.getSheet(i).getColumnCount()
  13.           var rowcount = tempspread.getSheet(i).getRowCount()
  14.           for (var j = 0; j < rowcount; j++) {
  15.             for (var k = 0; k < colcount; k++) {
  16.               if (self.spread.getSheet(i).getFormula(j, k)) {
  17.                 if ((self.spread.getSheet(i).getFormula(j, k)).match('VLOOKUP')) {
  18.                   var value = self.spread.getSheet(i).getFormula(j, k)
  19.                   self.spread.getSheet(i).setFormula(j, k, null)
  20.                   self.spread.getSheet(i).setValue(j, k, value)
  21.                 }
  22.               }
  23.             }
  24.           }
  25.         }
  26.       }
复制代码




image.png725006713.png
image.png962959594.png

1 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-2-18 13:40:50
沙发
[1]表示引用的workbook的索引。这个索引会在当前excel的workboo.xml中写入引用workbook的物理位置。也就是说这个值是excel里面给到我们的。

因为前端的限制,我们暂不支持跨工作簿公式,请问你是想删除原有的公式保留值吗?可以参考这篇帖子调整正则匹配的内容。
https://gcdn.grapecity.com.cn/showtopic-81334-1-1.html

若仍未解决,请提供能复现问题的表单这边来调研一下。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部