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

QQ登录

只需一步,快速开始

金牌服务用户

26

主题

93

帖子

243

积分

金牌服务用户

积分
243

金牌服务用户   /  发表于:2021-7-23 15:14  /   查看:1524  /  回复:3
  1. if (!StrUtil.endWith(dirPath, "/")) {
  2.             dirPath = dirPath +"/";
  3.         }
  4.         String ext = "excel".equals(type) ? ".xlsx" : ".pdf";
  5.         List<String> fileNameList = new ArrayList<>();
  6.         for (int i = 0; i < list.size(); i++) {
  7.             String tmpPath = list.get(i);
  8.             List<String> tmpPathList = StrSplitter.split(tmpPath, "-*-", true, true);
  9.             String path = tmpPathList.get(0);
  10.             String tmpFileName = StrUtil.isBlank(fileName) ? tmpPathList.get(1)+ext : fileName + i + ext;
  11.             Workbook workbook = new Workbook();
  12.             workbook.open(LimsConfig.getReportPath() + "/storage/app/" + path + "/excel.json");
  13.             // 保存
  14.             if("excel".equals(type)){
  15.                 workbook.save(dirPath + tmpFileName);
  16.             }else{
  17.                 workbook.save(dirPath + tmpFileName, SaveFileFormat.Pdf);
  18.             }
  19.             fileNameList.add(tmpFileName);
  20.         }
复制代码
gcexcel 导出多个excel文件,第一次导出成功后,第二次导出文件为空,只有一个授权页面

3 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-7-23 15:37:12
沙发
您好,
这边根据您的描述整理了一个demo,操作步骤如下:
1、通过for循环,使用open方法加载3个Excel文件
2、使用save方法下载3个Excel文件。
测试结果为Excel文件均可正常下载,未出现您描述的文件为空问题。

请提供一个完整可复现此问题的demo,
附件为测试demo,您可以在此demo的基础上进行修改,能复现此问题即可。

Gcdemo_maven.zip

59.98 KB, 下载次数: 32

回复 使用道具 举报

金牌服务用户   /  发表于:2021-7-23 15:43:11
板凳
Lynn.Dou 发表于 2021-7-23 15:37
您好,
这边根据您的描述整理了一个demo,操作步骤如下:
1、通过for循环,使用open方法加载3个Excel文件 ...

和您提供的demo不太一致,第一点:我们一次生成了几百个文件,第二点:我们启动了一个web服务,第一次请求可以正常生成,第二次请求生成的文件只有授权页面,必须重启web服务才可以正常生成
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-7-23 16:37:35
地板
您测试下在第二次请求时,在执行save方法之前,
通过调试
检查下open方法打开的json是否数据有异常,
以及加载json后获取到的workbook或者sheet中是否有数据,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部