找回密码
 立即注册

QQ登录

只需一步,快速开始

葡萄种子
金牌服务用户   /  发表于:2023-12-20 09:40  /   查看:1922  /  回复:4
本帖最后由 Richard.Huang 于 2023-12-28 17:27 编辑

产品:GcExcel
版本:V6.2.1

我用附件的模板和如下代码测试 ,发现性能不是线性增长的,2000条记录以上就有点无法接受了,麻烦看下,这个怎么优化。
  1. public class DemoJavaDatasource3 {
  2.     public static void main(String[] args) throws IOException {
  3.         System.out.println("start at" + new Date());
  4.         long start = System.currentTimeMillis();
  5.         Workbook workbook = new Workbook();
  6.         int index = 34;
  7.         String rootPath = "";
  8.         String templateFile = rootPath + index + ".template.xlsx";
  9.         workbook.open(templateFile);
  10.         List<DataRow> rows = new ArrayList<>();
  11.         int repeat = 2000;
  12.         for (int i = 0; i < repeat; ++i) {
  13.             rows.add(new DataRow("https://www.grapecity.com/spreadjs/demos/spread/source/logo-en.ico"));
  14.         }
  15.         workbook.addDataSource("ds", rows);
  16.         workbook.processTemplate();
  17.         workbook.save(rootPath + index + ".result.xlsx");
  18.         System.out.println("time: " + (System.currentTimeMillis() - start) / 1000.0);
  19.     }

  20.     public static class DataRow {
  21.         private String imgUrl;

  22.         public DataRow(String imgUrl) {
  23.             this.imgUrl = imgUrl;
  24.         }

  25.         public String getImgUrl() {
  26.             return imgUrl;
  27.         }

  28.         public void setImgUrl(String imgUrl) {
  29.             this.imgUrl = imgUrl;
  30.         }
  31.     }
  32. }
复制代码




34.template.xlsx

5.08 KB, 下载次数: 236

4 个回复

倒序浏览
葡萄种子
金牌服务用户   /  发表于:2023-12-20 09:42:29
沙发
image.png953382263.png

本机处理时间大概是这样
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-20 11:03:31
板凳
您好,经过调研测试发现,您的模板中对于图片绑定实现方式是通过IMAGE函数来进行的,因此您的模板填充过程中会存在大量的函数计算,该函数计算会占用大量时间,如果您希望优化这块执行逻辑,建议在填充模板前将计算引擎关闭:workbook.setEnableCalculation(false);
回复 使用道具 举报
葡萄种子
金牌服务用户   /  发表于:2023-12-20 11:13:11
地板
Richard.Huang 发表于 2023-12-20 11:03
您好,经过调研测试发现,您的模板中对于图片绑定实现方式是通过IMAGE函数来进行的,因此您的模板填充过程 ...

确实好了,感谢您的建议
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-20 13:14:43
5#
葡萄种子 发表于 2023-12-20 11:13
确实好了,感谢您的建议

谢谢支持,本帖子的问题解决,这里就结帖了。如果您有新的问题,也欢迎创建新的求助帖。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部