找回密码
 立即注册

QQ登录

只需一步,快速开始

cmbsjdev
金牌服务用户   /  发表于:2024-10-21 17:14  /   查看:484  /  回复:13
1金币
spreadJs 设置单元格类型为fileUpload支持文件上传,如果文件上传这一列是excel最后一列;后端通过worksheet.getUsedRange(EnumSet.of(UsedRangeType.Data))获取sheet页的数据区域拿不到上传文件的那一列怎么办

最佳答案

查看完整内容

抱歉以为您使用的是SpreadJS,所以给您提供的解答是针对于SpreadJS。在GcExcel中,可以使用UsedRangeType.Style来获取。如下图所示,在SpreadJS中使用的单元格区域在A列和B列,将其导出为ssjson文件后在GcExcel中导入,通过UsedRangeType.Style可以获取到包含FileUpload单元格类型所在的最后一行。 关于UsedRangeType,可以参考官网API文档了解详情: https://www.grapecity.com.cn/developer/grapecitydocuments/excel-ja ...

13 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-10-21 17:14:16
来自 4#
cmbsjdev 发表于 2024-10-21 18:43
UsedRangeType里面没有all类型,gcexcel的版本是7.2.2,要改成哪个版本才有all

抱歉以为您使用的是SpreadJS,所以给您提供的解答是针对于SpreadJS。在GcExcel中,可以使用UsedRangeType.Style来获取。如下图所示,在SpreadJS中使用的单元格区域在A列和B列,将其导出为ssjson文件后在GcExcel中导入,通过UsedRangeType.Style可以获取到包含FileUpload单元格类型所在的最后一行。
1729558963197.png848877563.png

关于UsedRangeType,可以参考官网API文档了解详情:
https://www.grapecity.com.cn/developer/grapecitydocuments/excel-java/docs/JavaAPIDocumentation?api-url=%2Fgc-excel-java%2Fapi-docs%2Fv7.2%2Fcom%2Fgrapecity%2Fdocuments%2Fexcel%2FUsedRangeType.html
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-21 17:32:45
2#
您好!因为FileUpload单元格类型并非UsedRangeType.data,需要使用如下代码获取:
  1. sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.all);
复制代码
或者
  1. sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.style);
复制代码

可以参考官网API文档了解详情:
https://demo.grapecity.com.cn/spreadjs/help/api/enums/GC.Spread.Sheets.UsedRangeType
回复 使用道具 举报
cmbsjdev
金牌服务用户   /  发表于:2024-10-21 18:43:32
3#
Wilson.Zhang 发表于 2024-10-21 17:32
您好!因为FileUpload单元格类型并非UsedRangeType.data,需要使用如下代码获取:
或者


UsedRangeType里面没有all类型,gcexcel的版本是7.2.2,要改成哪个版本才有all
a2bd34f5ba01483cb7e0e3c77c5b3f8c_IMAGE_1729507333376.jpg
回复 使用道具 举报
cmbsjdev
金牌服务用户   /  发表于:2024-10-22 10:29:30
5#
请问一下前端通过spreadJs 上传文件以后通过.sjs格式将文件流传给后端,后端解析sjs文件怎么获取单元格内的文件?cell.getValue()拿不到是空的
回复 使用道具 举报
cmbsjdev
金牌服务用户   /  发表于:2024-10-22 10:46:14
6#
Wilson.Zhang 发表于 2024-10-22 09:03
抱歉以为您使用的是SpreadJS,所以给您提供的解答是针对于SpreadJS。在GcExcel中,可以使用UsedRangeType ...

请问一下前端通过spreadJs 上传文件以后通过.sjs格式将文件流传给后端,后端解析sjs文件怎么获取单元格内的文件?cell.getValue()拿不到是空的
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-22 12:14:02
7#
cmbsjdev 发表于 2024-10-22 10:46
请问一下前端通过spreadJs 上传文件以后通过.sjs格式将文件流传给后端,后端解析sjs文件怎么获取单元格内 ...

依然以4楼图片中A4单元格为例,可以通过如下代码获取,获取结果为文件对应的base64码。
  1. worksheet.getRange("A5").getValue()
复制代码
回复 使用道具 举报
cmbsjdev
金牌服务用户   /  发表于:2024-10-22 14:32:50
8#
Wilson.Zhang 发表于 2024-10-22 12:14
依然以4楼图片中A4单元格为例,可以通过如下代码获取,获取结果为文件对应的base64码。

getValue()拿不到是空的,sjs和ssjson一样都拿不到
f32d85cef0124b19a5f5ec5edbd7b274_IMAGE_1729578580607.jpg
72e6ede5c68f4691aee0e9e5bd98e3fe_IMAGE_1729578574158.jpg
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-22 15:14:11
9#
cmbsjdev 发表于 2024-10-22 14:32
getValue()拿不到是空的,sjs和ssjson一样都拿不到

我们使用的也是7.2.2版本,且发现如果单元格类型为FileUpload但未对其上传文件,那么,GcExcel中通过IRange:getValue()的结果即为null。您可以排查下ssjson和sjs文件中E1、E2单元格是否有上传文件,如果其中均有文件,那么需要您提供下您使用的ssjson或sjs文件,我们据此分析下。
回复 使用道具 举报
cmbsjdev
金牌服务用户   /  发表于:2024-10-22 15:34:59
10#
Wilson.Zhang 发表于 2024-10-22 15:14
我们使用的也是7.2.2版本,且发现如果单元格类型为FileUpload但未对其上传文件,那么,GcExcel中通过IRan ...

sjs和ssjson的文件都发你了,E1和E2都有文件,你看看能不能拿到

abc.sjs

42.73 KB, 下载次数: 20

1.ssjson

142.78 KB, 下载次数: 18

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部