@toc
本物联网系列
二、零基础用uniapp快速开发实现MQTT设备中心附后台接口
三、MQTT服务器搭建实现物联网通讯
四、springboot + rabbitmq 做智能家居以及web显示未读消息
为啥要用这玩意,来看看大佬怎么说
在项目持续集成的过程中,有时候需要实现报表导出和文档导出,
类似于excel中这种文档的导出,在要求不高的情况下,有人可能会考虑直接导出csv文件来简化导出过程。
但是导出xlsx文件,其实过程相对更复杂。解决方案就是使用poi的jar包。使用源生的poi来操作表格,代码冗余,处理复杂,同时poi的相关联的依赖还会存在版本兼容问题。
所以直接使用poi来实现表格导出,维护成本大,不易于拓展。
我们需要学会站在巨人的肩膀上解决问题,jxls-poi这个就很好解决这个excel表格导出的多样化的问题。类似jsp和thymealf的模板定义,使得表格导出变得简单可控。
总结:不用像之前一行一行,一格一格来操作,这玩意类似jsp那样,灵活性强,可复用,效率高(相见恨晚!!!!!)
https://www.jb51.net/article/195015.htm
pom
<!--jxls-->
<!--SpringBoot快速集成jxls-poi(自定义模板,支持本地文件导出,在线文件导出)-->
<!-- jxls-api依赖 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
<dependency>
<groupId>net.sf.jxls</groupId>
<artifactId>jxls-core</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>net.sf.jxls</groupId>
<artifactId>jxls-reader</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>spring-wind</artifactId>
<version>1.1.5</version>
<exclusions>
<exclusion>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- jxls-api依赖 -->
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-poi</artifactId>
<version>1.0.15</version>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls</artifactId>
<version>2.4.6</version>
</dependency>
测试
/**
* 导出excel
* @param request
* @param response
* @return
*/
@GetMapping("/exp")
@ResponseBody
public String exp(HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> mapList = new HashMap<String, Object>();
String pointId=request.getParameter("pointId");
String beginTime=request.getParameter("beginTime")+" 00:00:00";
String endTime=request.getParameter("endTime")+" 23:59:59";
String cn=request.getParameter("cn");// "1:实时数据 2 :分钟 3 :小时 4:天"
log.info("开始:{},结束时间:{}"+beginTime);
log.info("结束时间:{}"+endTime);
try {
String templateName = null;
byte var9 = -1;
switch(cn.hashCode()) {
case 49:
if (cn.equals("1")) {
var9 = 0;
}
default:
switch(var9) {
case 0:
templateName = "实时数据模板.xls"</