找回密码
 立即注册

QQ登录

只需一步,快速开始

lynn8588

金牌服务用户

40

主题

161

帖子

413

积分

金牌服务用户

积分
413
lynn8588
金牌服务用户   /  发表于:2023-1-6 18:43  /   查看:3272  /  回复:9
本帖最后由 Ellia.Duan 于 2023-1-9 12:31 编辑

Hi team,

我这里有份文件(附件里)用Excel打开是好的,但是使用GCExcel打开后,然后保存就报错。麻烦帮忙解决下,这个关系到我们保存报表功能。比较紧急,麻烦了!
我自己简单写了一下也能重现报错
public static void main(String[] args) {
    //extracted();
    Workbook workbook=new Workbook();
    workbook.open("test555.xlsx");

    getWorkbookByte(workbook);
    System.out.println("sssss");
}

image.png684068908.png

test555.zip

1.01 MB, 下载次数: 209

9 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-6 19:12:17
沙发
本帖最后由 Ellia.Duan 于 2023-1-9 12:31 编辑

您好,用您的excel文件,复现了问题,这边将此贴置为保留处理,移至bug反馈区,待有进展,及时通知您。[DOCXLS-7376]
image.png867639465.png
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-10 11:28:54
板凳
经过研发调研,问题是:
打开您的excel文件,然后点击另存为,excel会提示这个错误
image.png909453430.png
然后点击继续,您将看到一个保存失败的对话框
image.png164113463.png
image.png962808532.png
所以GcExcel 将在V6.0.3中跳过这个错误进行保存。
同时建议您这边检查您提供的excel文件,使其可以正常使用。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-11 09:35:25
地板
本帖最后由 Ellia.Duan 于 2023-1-11 09:38 编辑

您好,鉴于文件损坏严重,这边新建了excel文件,然后将您的test555.xlsx中第一个sheet 有内容的相关部分进行了复制,在新excel文件中进行粘贴,然后在GcExcel中进行open,save 没有报错。
如下图所示:
image.png846218871.png

555.xlsx

20.77 KB, 下载次数: 182

test1.xlsx

18.18 KB, 下载次数: 184

回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2023-1-11 10:00:33
5#
Ellia.Duan 发表于 2023-1-11 09:35
您好,鉴于文件损坏严重,这边新建了excel文件,然后将您的test555.xlsx中第一个sheet 有内容的相关部分进 ...

您好,您能后台debug我告诉我哪些报表的哪些格子有问题吗?客户不会说我导出有问题,我重新建一个excel然后一个个copy过去,所以我想知道是哪些报错,然后我也找下解决方法
回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2023-1-11 11:19:25
6#
lynn8588 发表于 2023-1-11 10:00
您好,您能后台debug我告诉我哪些报表的哪些格子有问题吗?客户不会说我导出有问题,我重新建一个excel然 ...

因为我看到GCExcel报null引用,那应该能追踪到是哪里空了,哪里有问题,麻烦您直接告诉我
回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2023-1-11 16:58:59
7#
lynn8588 发表于 2023-1-11 11:19
因为我看到GCExcel报null引用,那应该能追踪到是哪里空了,哪里有问题,麻烦您直接告诉我

Hi team,

GCExcel使用的版本是5.2.5,Spreadjs使用的是15.2.4。
流程是
1.使用GCExcel拼装workbook,这时保存没有报错(附件里有生成的excel文件)
2.使用spreadjs渲染这套文件,然后修改一个格子,点击保存。(在传到后台之前,我保存了一份json文件,见附件)
3.后台保存时使用GCExcel接收二进制流,然后打开保存报错:wb.save报错,错误看附件视频,并且之前你们自己也重现出来了。

private static byte[] getWorkbookByte(Workbook wb) {
//        Workbook wb = new Workbook();
//        wb.getActiveSheet().getRange("A1");
        try{
            OutputStream os = new ByteArrayOutputStream();
            wb.save(os, SaveFileFormat.Xlsx);
            byte[] bytes = ((ByteArrayOutputStream) os).toByteArray();
            return bytes;
        }catch (Exception ex){
            throw ex;
        }

    }

在线编辑保存报错.zip

4.81 MB, 下载次数: 170

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-11 17:55:41
8#
本帖最后由 Ellia.Duan 于 2023-1-11 18:18 编辑

您好,这边做了一个简单测试,

使用您的excel文件,导入到GcExcel中,然后保存未报错。
image.png351218871.png
但是此时打开test.xlsx文件已经出现了问题
image.png843741454.png
还有就是这边另存你发的excel文件,也会报错
image.png222030638.png
所以在第一步导出GcExcel之前就出现了问题,不用说,后面的导入到SpreadJS中,或者再次导入到GcExcel中。
回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2023-1-11 18:24:59
9#
Ellia.Duan 发表于 2023-1-11 17:55
您好,这边做了一个简单测试,

使用您的excel文件,导入到GcExcel中,然后保存未报错。

请使用原始文件

WP+TR+企业资料清单-新底层版 - test.zip

470.52 KB, 下载次数: 187

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-12 14:07:17
10#

您好,这边下载了您没有经过POI处理的原始文件,然后在GcExcel中做了删除sheet操作,如下所示:

image.png380857238.png
并未报错,且生成的test1.xlsx文件可以正常打开。
在Designer中导入生成的test1.xlsx文件,可以正常导入,修改其中一个sheet的值
然后导出excel文件,
再次导入到GcExcel中,GcExcel可以正常save 。如下图所示:
image.png35952452.png

建议您,使用未经POI处理的文件来进行GcExcel和SpreadJS相关处理。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部