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

QQ登录

只需一步,快速开始

gnip

中级会员

122

主题

312

帖子

984

积分

中级会员

积分
984
gnip
中级会员   /  发表于:2024-9-30 16:43  /   查看:113  /  回复:3
1金币
之前发了一篇帖子名为报表自定义单元格后导出单元格文本不对】,按照下面所给的解决方案,但是我本地测试,spreadjs内部直接抛出错了
image.png958729858.png
以下是我导出的代码逻辑
image.png936161193.png
  1.     const spread = GC.Spread.Sheets.findControl(spreadDom.value)
  2.     spread.suspendPaint()
  3.     const sheetTabCount = spread.getSheetTabCount()
  4.     const dataMap = new Map()
  5.     for (let i = 0; i < sheetTabCount; i++) {
  6.       const sheetTab = spread.getSheetTab(i)
  7.       const usedRange = sheetTab.getRange()
  8.       dataMap.set(i, [])
  9.       const sheetMapItem = dataMap.get(i)
  10.       for (let i = 0; i < usedRange.rowCount; i++) {
  11.         const arr = []
  12.         for (let j = 0; j < usedRange.colCount; j++) {
  13.           let value = sheetTab.getValue(i, j)
  14.           value = typeof v === 'object' ? value.label : value
  15.           arr.push(value)
  16.         }
  17.         sheetMapItem.push(arr)
  18.       }
  19.     }
  20.     spread.resumePaint()
  21.     const temp = new GC.Spread.Sheets.Workbook()
  22.     await temp.fromJSON(spread.toJSON())

  23.     const t_sheetTabCount = spread.getSheetTabCount()

  24.     for (let i = 0; i < t_sheetTabCount; i++) {
  25.       const t_sheetTab = temp.getSheetTab(i)
  26.       const usedRange = t_sheetTab.getRange()

  27.       t_sheetTab.getSheet().setArray(usedRange.row, usedRange.col, dataMap.get(i))
  28.     }
  29.     console.log('dataMap.get(i)', temp)

  30.     temp.export(
  31.       (blob) => {
  32.         fileSaver.saveAs(
  33.           blob,
  34.           `${
  35.             typeof downloadFieldName === 'string'
  36.               ? downloadFieldName
  37.               : reportDetail.value.reportName
  38.           }.xlsx`
  39.         )

  40.         // 隐藏行头
  41.         setTimeout(() => {
  42.           resolveColAndRowHeader(false, temp)
  43.           sheetLoading.value = false
  44.         }, 200)
  45.         ElMessage({
  46.           message: '导出成功',
  47.           type: 'success'
  48.         })
  49.       },
  50.       null,
  51.       {
  52.         fileType: GC.Spread.Sheets.FileType.excel
  53.       }
  54.     )
复制代码


3 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:2024-9-30 17:40:07
沙发
您好!从您提供的信息,看不出来问题所在,需要您提供一个能够复现问题的demo。如果不便提供demo,建议节后约个会议讨论下。
回复 使用道具 举报
gnip
中级会员   /  发表于:3 天前
板凳
Wilson.Zhang 发表于 2024-9-30 17:40
您好!从您提供的信息,看不出来问题所在,需要您提供一个能够复现问题的demo。如果不便提供demo,建议节后 ...

复现测试文件已上传

test.zip

164.27 KB, 下载次数: 2

回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:3 天前
地板
gnip 发表于 2024-10-8 11:00
复现测试文件已上传

收到测试文件,测试后给您同步结论。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部