请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

liuzhijie

注册会员

3

主题

7

帖子

20

积分

注册会员

积分
20
  • 755

    金币

  • 3

    主题

  • 7

    帖子

最新发帖
liuzhijie
注册会员   /  发表于:2024-7-3 18:26  /   查看:76  /  回复:1
1金币
onImportReport() {
  const changeFile = e => {
    let file = e.target.files[0]
    excelIo.open(
      file,
      async json => {
        Message.info('开始导入')
        this.suspendStart()
        spread.fromJSON(json)
        activeSheet = spread.getActiveSheet()
        const { rowCount, rowPosition } = this.getRowCount(
          this.singleLayout
        )
        const pasteData = ReportUtils.getPasteList(activeSheet, rowCount)
        pasteData.param.reportName = [this.baseInfo.reportName]
        pasteData.param.reportCode = [this.baseInfo.reportCode]
        const res = await API.reportImportCheck(pasteData.param)
        const errorCode = res.data.isContainsErrorCode
        if (!errorCode) {
          const rowParams = res.data.rowParams
          activeSheet.setArray(rowCount, rowPosition.col, rowParams)
          this.setCheckItem(pasteData.cells, rowCount)
          this.setReportTable(this.fillForm)
          Message.success('导入成功!')
        } else {
          const elementRecognition = res.data.elementRecognition
          let messages = []
          reportInfo.elementSelection.forEach(item => {
            const dimensionCode = item.dimensionCode
            elementRecognition[dimensionCode].forEach((el, index) => {
              Object.keys(el).forEach(key => {
                if (!el[key]) {
                  const col = item.selectionCol
                  const row = index + rowCount + 1
                  const msg = `导入表第${row}行第${col}:${key}未找到主数据信息`
                  messages.push(msg)
                }
              })
            })
          })
          Notification({
            title: '提示',
            message: messages.join('<br/>'),
            dangerouslyUseHTMLString: true,
            offset: 100,
            duration: 5000
          })
          await this.setReportBaseInfo()
        }
        this.suspendEnd()
      },
      function() {
        Message.error('导入失败!')
      }
    )
  }
  importFile(changeFile)
},


1 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-4 10:53:17
沙发
您好,看上去您在导入的逻辑里面还做了很多其他的操作,有可能是这些操作拖慢了导入的进度。

另外,V16发布了一个新的IO包用于导入和导出,您可以试试用这个IO包来进行导入和导出:https://demo.grapecity.com.cn/sp ... mat/overview/purejs
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部