找回密码
 立即注册

QQ登录

只需一步,快速开始

LIUZHIPENG
注册会员   /  发表于:2023-2-22 13:50:05
10#
LIUZHIPENG 发表于 2023-2-22 12:45
引入spreadDesigner 资源后报Cannot read properties of undefined (reading 'DR')

我知道了,没引正确
应该是这样引入
<link rel="stylesheet" href="./resource/gc.spread.sheets.16.0.2.css">
    <link rel="stylesheet" href="./resource/gc.spread.sheets.excel2016colorful.16.0.2.css">
    <script src="./resource/gc.spread.sheets.all.16.0.2.min.js"></script>
    <script src="./resource/gc.spread.sheets.resources.zh.16.0.2.min.js"></script>
    <script src="./resource/gc.spread.sheets.io.16.0.2.min.js"></script>

这样上边有import ,但是还是提示文件格式错误
回复 使用道具 举报
LIUZHIPENG
注册会员   /  发表于:2023-2-22 13:51:18
11#
本帖最后由 LIUZHIPENG 于 2023-2-22 13:52 编辑
Lynn.Dou 发表于 2023-2-22 11:04
测试了您的demo,正如1楼所述,在V15版本中没有更好的优化空间了。
建议您升级V16,使用sjs文件格式,在性 ...

能给我一个怎么引入sjs的例子嘛,我是通过直接请求服务器文件去加载的
  1. spreadObj.suspendPaint()
  2.         spreadObj.suspendCalcService(true)
  3.         let self = this
  4.         const loading = this.$loading({
  5.           lock: true,
  6.           text: '请稍候',
  7.           background: 'rgba(255,255,255,0.5)'
  8.         })
  9.         var excelFilePath = '/spreadExcel/upload/template/volume/bigFile.sjs'
  10.         // var excelFilePath = '/spreadExcel/upload/' + SSJsonName
  11.         // var excelFilePath = ssJsonAddress+'/upload/' + SSJsonName
  12.         var xhr = new XMLHttpRequest()
  13.         xhr.open('GET', excelFilePath, true)
  14.         xhr.responseType = 'arraybuffer'
  15.         //清除之前的status
  16.         document.getElementById('statusBar').innerHTML = ''
  17.         //增量加载
  18.         let statusBar = new GC.Spread.Sheets.StatusBar.StatusBar(document.getElementById('statusBar'))
  19.         statusBar.bind(spreadObj)
  20.         statusBar.remove('cellMode')
  21.         let loadingStatus = new LoadingStatus('LoadingStatus', { tipText: 'LoadingStatus' })
  22.         statusBar.add(loadingStatus)
  23.         xhr.onload = async function (e) {
  24.           if (this.status == 200) {
  25.             spreadObj.import(
  26.               this.response,
  27.               function () {
  28.                 console.log("success");
  29.                 // success callback to do something
  30.               },
  31.               function (e) {
  32.                 console.log(e); // error callback
  33.               },
  34.             );
  35.             // await spreadObj.fromJSON(this.response,{
  36.             //   doNotRecalculateAfterLoad: false,
  37.             //   incrementalLoading: {
  38.             //     loading: function (progress) {
  39.             //       loadingStatus.updateProgress(progress)
  40.             //     },
  41.             //     loaded: function () {
  42.             //       loadingStatus.updateText('Ready')
  43.             //       loading.close()
  44.             //       self.dataEntry()
  45.             //     }
  46.             //   }
  47.             // })
  48.             
  49.           } else {
  50.             loading.close()
  51.             self.$message.error('加载模板失败,请联系系统管理员')
  52.           }
  53.         }
  54.         xhr.send()
  55.         //按需求执行计算
  56.         spreadObj.options.calcOnDemand = true
  57.         //spread 恢复绘制、恢复计算
  58.         spreadObj.resumeCalcService(true)
  59.         spreadObj.resumePaint()
复制代码


回复 使用道具 举报
LIUZHIPENG
注册会员   /  发表于:2023-2-22 14:52:16
13#
本帖最后由 LIUZHIPENG 于 2023-2-22 14:54 编辑
Lynn.Dou 发表于 2023-2-21 17:07
sjs文件是通过open方法加载的,不同于原先的fronJSON传参为json数据,open方法传参应为文件流(类似于此前 ...

你好,方便远程嘛,我试了sjs 导入后,设置一个单元格的数据,都很慢,将近一分钟
image.png995679626.png

image.png262273558.png
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-2-22 16:58:52
14#
您在导入sjs文件时,设置"calcOnDemand"为true。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部