cmbsjdev 发表于 2024-10-23 11:25:04

IRange.copy(IRange var1, PasteOption var2)复制文件到一个新的sheet文件名丢失

本帖最后由 Wilson.Zhang 于 2024-11-28 16:16 编辑

产品:SpreadJS
版本:7.2.2
调研编号:DOCXLS-11384, DOCXLS-11399
Last Review:2024-11-28
当前进展:DOCXLS11384转需求至DOCXLS-11399,待支持FileUpload单元格类型。

你好,我这边有一个业务需求需要将多个已经上传过文件的sjs文件汇总到一个新的sheet页里,但是在使用copy(IRange var1, PasteOption var2)方法复制数据区域时,文件确实复制过去了,但是文件名丢失了。
下面是复制代码:
PasteOption pasteOption = new PasteOption();
      EnumSet<PasteType> types = EnumSet.of(PasteType.Values, PasteType.ColumnWidths, PasteType.RowHeights, PasteType.NumberFormats,PasteType.Formats, PasteType.Formulas);
      pasteOption.setPasteType(types);worksheetTemp.getRange(fromRange).copy(targetWorksheet.getRange(toRange),pasteOption);

前端界面展示截图如下

Lynn.Dou 发表于 2024-10-23 14:49:28

本帖最后由 Lynn.Dou 于 2024-10-23 15:06 编辑

您好,
问题已复现,已记录下来进一步调研具体原因,待有进展会在贴中通知您。(DOCXLS-11384)

cmbsjdev 发表于 2024-10-23 17:01:48

Lynn.Dou 发表于 2024-10-23 14:49
您好,
问题已复现,已记录下来进一步调研具体原因,待有进展会在贴中通知您。(DOCXLS-11384)

应该不只是丢失文件名,如果用copy方法复制一个大一点的文件,2M或者3M文件应该都没有复制过来,点击下载复制的文件会下载失败

Joestar.Xu 发表于 2024-10-23 17:26:55

本帖最后由 Ellia.Duan 于 2024-10-23 17:36 编辑

您好,经确认,目前FileUpload CellType暂不支持使用Copy方法,我们后续会将其作为一个需求报告给产品。

需要了解下,为什么需要在后端用Copy来复制FileUpload CellType呢,是什么场景呢?

cmbsjdev 发表于 2024-10-24 09:51:22

Joestar.Xu 发表于 2024-10-23 17:26
您好,经确认,目前FileUpload CellType暂不支持使用Copy方法,我们后续会将其作为一个需求报告给产品。

...

我们这边有的业务场景需要汇总多个填表人的填表内容到一个新的sheet

cmbsjdev 发表于 2024-10-24 09:53:53

Joestar.Xu 发表于 2024-10-23 17:26
您好,经确认,目前FileUpload CellType暂不支持使用Copy方法,我们后续会将其作为一个需求报告给产品。

...

不使用copy,gcexcel有没有办法将有文件的单元格复制到另外一个sheet里?

Ellia.Duan 发表于 2024-10-24 11:00:42

已明白您的使用场景,继续调研此问题,有进展会及时联系您。

Ellia.Duan 发表于 2024-10-24 15:20:38

您好,SpreadJS的文件上传单元格是新功能,GcExcel还未支持此单元格类型,通过getValue虽然可以拿到base64文件值,但是无法获取fileName。
所以此功能的实现,需要等GcExcel先支持了FileUpload CellType . 需求编号是DOCXLS-11399

cmbsjdev 发表于 2024-10-25 16:48:43

Ellia.Duan 发表于 2024-10-24 15:20
您好,SpreadJS的文件上传单元格是新功能,GcExcel还未支持此单元格类型,通过getValue虽然可以拿到base64 ...

大概要多久解决这个问题

Ellia.Duan 发表于 2024-10-25 17:38:00

本帖最后由 Ellia.Duan 于 2024-10-25 18:07 编辑

您好,DOCXLS-11399的需求,不仅仅是解决fileName丢失问题,还要做FileUpload CellType的相关支持。短时间无法实现。



还想到一个方案就是获取文件名,保存在隐藏的单元格或者tag中,当SpreadJS再次导入GcExcel合并sheet 后的json是,重新为丢失文件名的文件设置文件名。
当然,这里面有一个难点是如何获取文件名,参考下图,监听ValueChanged事件即可获取。




页: [1]
查看完整版本: IRange.copy(IRange var1, PasteOption var2)复制文件到一个新的sheet文件名丢失