Java按模板导出Excel———基于Aspose实现
开发环境
- jdk 1.8
- Maven 3.6
- SpringBoot 2.1.4.RELEASE
- aspose-cells 8.5.2
- Idea
或
先看效果
模板:
导出后效果:
引入jar包
pom.xml
如遇到jar无法下载的情况,可自行下载到本地,然后手动添加到项目中
<dependencies>
<!-- 你的其他jar -->
<!-- aspose -->
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<version>8.5.2</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
</repositories>
校验许可证
Aspose默认引入的是评估版(未指定许可证),此版本可使用全部功能,但是有以下两个限制:
- 运行程序时,只能打开100个Excel文件。如果您的应用程序超过此数量,将引发异常。
- 带有评估水印的工作表
如果你的应用场景不能接受以上两点限制,可在官网购买许可证,然后通过校验许可证解除限制;如果你可以接受,请忽略此操作;
官网提供多种校验方式,此处只列举其中一种将License配置在项目中
在resources包下添加license.xml

创建AsposeUtils工具类,添加方法校验方法
package com.wayne.common.utils;
import com.aspose.cells.License;
import java.io.InputStream;
/**
* Aspose工具类
* @author Wayne
* @date 2019/6/10
*/
public class AsposeUtils {
/**
* 校验Aspose的License
*/
private static Boolean checkLicense() {
try {
InputStream license = AsposeUtils.class.getClassLoader().getResourceAsStream("license.xml");
License aposeLic = new License();
aposeLic.setLicense(license);
} catch (Exception e) {
e.printStackTrace();
}
return License.isLicenseSet();
}
}
导出方法
此处列举为较简单的单个sheet,且不分页导出,更多使用方式请参考官网文档
package com.wayne.common.utils;
import com.aspose.cells.License;
import com.aspose.cells.Workbook;
import com.aspose.cells.WorkbookDesigner;
import java.io.InputStream;
import java.util.List;
/**
* Aspose工具类
* @author Wayne
* @date 2019/6/10
*/
public class AsposeUtils {
/**
* @param head 单个对象,将对象作为此参数传入。如没有,传入null
* @param list 多个对象时,将对象作为此参数传入。如没有,传入null
* @param templateName 模板所在的位置,如:E:/template/studentTemplate.xlsx
* @param resultFilePath 生成后的文件所存放的文件夹,如:E:/data/
* @return 生成后的文件路径及文件名,如:E:/data/student.xlsx
*/
public static <H> String exportExcelByAsposeWithTemplate(H head, List list, String templateName, String resultFilePath) {
// 校验许可证
if(!checkLicense()) {
return null;
}
// 生成后文件名
String resultFile = resultFilePath + System.currentTimeMillis() + ".xlsx";
try {
// 加载模板
Workbook wb = new Workbook(templateName);
// 加载设计器
WorkbookDesigner designer = new WorkbookDesigner();
designer.setWorkbook(wb);
// 单个对象和集合区分(在模板中定义方式不同)
if(null != head) {
designer.setDataSource("Head", head);
}
if(null != list) {
designer.setDataSource("List", list);
}
designer.process();
wb.save(resultFile);
wb.dispose();
} catch (Exception e) {
e.printStackTrace();
}
return resultFile;
}
/**
* 校验Aspose的License
*/
private static Boolean checkLicense() {
try {
InputStream license = AsposeUtils.class.getClassLoader().getResourceAsStream("license.xml");
License aposeLic = new License();
aposeLic.setLicense(license);
} catch (Exception e) {
e.printStackTrace();
}
return License.isLicenseSet();
}
}
测试结果
@Test
public void exportExcelByAsposeWithTemplateTestCase() {
String templateName = "E:/Temp/Template.xlsx";
String resultFilePath = "E:/Temp/";
// 单个对象测试
UserOne userOne = new UserOne();
userOne.setId(1);
userOne.setUsername("Tom");
userOne.setPassword("123123");
// 集合测试
List<UserTwo> lists = new ArrayList<>();
for(int i = 0; i < 10; i++) {
UserTwo temp = new UserTwo();
temp.setId(i*10);
temp.setUsername(String.valueOf((i*100)));
lists.add(temp);
}
String resultFileName = AsposeUtils.exportExcelByAsposeWithTemplate(userOne, lists, templateName, resultFilePath);
assert null != resultFileName;
}

运行测试用例,绿了~~~
占位符
常规占位 (¬_¬)…
Java按模板导出Excel———基于Aspose实现的更多相关文章
- Java无模板导出Excel,Apache-POI插件实现
开发环境 jdk 1.8 Maven 3.6 Tomcat 8.5 SpringBoot 2.1.4.RELEASE Apache-POI 3.6 Idea 注意: 我是在现有的基于SpringBoo ...
- java五行代码导出Excel
目录 先看代码 再看效果 EasyExcel 附: Java按模板导出Excel---基于Aspose实现 Java无模板导出Excel,Apache-POI插件实现 已经写过两种Excel导出插件了 ...
- aspose.cells根据模板导出excel
又隔十多天没写博客了,最近都在忙项目的事情,公司人事变动也比较大,手头上就又多了一个项目.最近做用aspose.cells根据模板导出excel报价单的功能,顺便把相关的核心记下来,先上模板和导出的效 ...
- 关于Java中excel表格导出的总结(Java程序导出模板和Java根据模板导出表格两种实现方式)
导出excel通用模板(程序定义模板导出) 转载原文:https://www.jianshu.com/p/5c7b359a159c 如下代码,本方法主要用于程序定义模板格式,并导出文件.该方法将定义和 ...
- java使用jxls导出Excel
jxls是基于POI的Excel模板导出导入框架.通过使用类似于jstl的标签,有效较少导出Excel的代码量. 1.pom <!-- https://mvnrepository.com/art ...
- POI通过模板导出EXCEL文件
一般的EXCEL导出使用POI先创建一个HSSFWorkbook,然后通过不断创建HSSFRow,HSSFCell后设置单元格内容便可以完成导出. 这次在项目中需要用到模板,导出的内容包括(1.模板中 ...
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...
- ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据
ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...
- apache poi根据模板导出excel
需要预先新建编辑好一个excel文件,设置好样式. 编辑好输出的数据,根据excel坐标一一对应. 支持列表数据输出,列表中列合并. 代码如下: package com.icourt.util; im ...
随机推荐
- [深入学习C#]C#实现多线程的方式:使用Parallel类
简介 在C#中实现多线程的另一个方式是使用Parallel类. 在.NET4中 ,另一个新增的抽象线程是Parallel类 .这个类定义了并行的for和foreach的 静态方法.在为 for和 f ...
- pyget-资源与标签(Sprite、Label、Font)
Sprite精灵,是游戏中对具有动画作用功能的图片的爱称. 精灵,图标和字体等资源是不能够处理事件的,因为它们并不是继承自EventDispatcher.但是可以包含一个能够EventDispatch ...
- Android DOM解析XML方法及优化
在Android应用开发中,我们常常要在应用启动后从服务器下载一些配置文件,这些配置文件包含一些项目中可能用到的资源,这些文件很多情况下是XML文件,这时就要将XML下载到文件中保存,之后再解析XML ...
- P2P流媒体开源项目介绍
P2P流媒体开源项目介绍1. PeerCast 2002年成立,最早的开源P2P流媒体项目.PeerCast把节点按树结构组织起来, 每个频道都是一个树, 直播源是根节点,父节点只给子节点提供数据.节 ...
- 洛谷3384&bzoj1036树链剖分
值得注意的是: 一个点的子树是存在一起的...也就是说我们修改子树的时候只用... /********************************************************* ...
- bzoj 4199: [Noi2015]品酒大会 后缀树
题目大意: 给定一个长为n的字符串,每个下标有一个权\(w_i\),定义下标\(i,j\)是r相似的仅当\(r \leq LCP(suf(i),suf(j))\)且这个相似的权为\(w_i,w_j\) ...
- binlog配置和使用
binlog启用和禁用在/etc/my.cnf文件中添加log-bin=mysql-bin来启用binlog,mysql-bin为日志文件名前缀.如果用户有super权限,可通过set sql_log ...
- Poj 2602 Superlong sums(大数相加)
一.Description The creators of a new programming language D++ have found out that whatever limit for ...
- Azure CLI下载Azure Storage Container内的所有文件
在某些场景下,客户需要把Azure Storage的某一个container内的内容都下载到本地.当然采用PowerShell可以定时的进行下载的动作,但有时客户的环境是Linux或MacOS,这时需 ...
- Azure自动化部署服务 (2)
上一篇文章介绍了如何通过添加用户名和密码的方式实现自动化部署服务中与Azure Subscription的连接. 本文将介绍如何使用证书的方式实现Azure Automation与Azure的Subs ...