当前位置: 科技师 » 电脑知识 » 正文

java如何导出excel_java导出excel的工具及方法

很多网友不知道java如何导出excel,相信很多做java系统开发的网友经常会很频繁的遇到Excel导出问题,而很多时候遇到这样的情况不知道应该如何操作,今天就为大家分享这个java导出excel的工具及方法,希望能够帮助到有需要的网友。

java导出excel的工具及方法

今天为大家推荐的这个工具名叫EasyExcel,该工具是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具,他能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。

java如何导出excel_java导出excel的工具及方法

1、先进行pom.xml要导入包进行添加:


<!-- excel工具包 https://easyexcel.opensource.alibaba.com/qa/-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.10</version>
<exclusions>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</exclusion>
<exclusion>
<artifactId>poi-ooxml-schemas</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.10.0</version>
</dependency>

2、接着我们写个通用EasyExcel工具类:


import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.util.List;

/**
* EasyExcel工具类
*/
@Slf4j
public class EasyExcelUtil {

/**
* 导出Excel(07版.xlsx)到web
*
* @param response 响应
* @param excelName Excel名称
* @param sheetName sheet页名称
* @param clazz Excel要转换的类型
* @param data 要导出的数据
* @throws Exception
*/
public static void export2Web(HttpServletResponse response, String excelName, String sheetName, Class clazz, List data) throws Exception {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
excelName = URLEncoder.encode(excelName, "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
EasyExcel.write(response.getOutputStream(), clazz).sheet(sheetName).doWrite(data);
}

}

3、最后我们返回参数:


import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;

@Data
@ApiModel(value = "VO", description = "导出列表Vo")
public class VO implements Serializable {

/**
* 主键
* @ExcelIgnore:导出列表不显示
*/
@ApiModelProperty(value = "主键")
@ExcelIgnore
private Integer id;

/**
* 名称
* @ColumnWidth(30):要显示导出的列表列:30代表列表宽度
*/
@ApiModelProperty(value = "名称")
@ExcelProperty(value = "名称")
@ColumnWidth(30)
private String name;

/**
* 地址
*/
@ApiModelProperty(value = "地址")
@ExcelProperty(value = "地址")
@ColumnWidth(35)
private String address;

}

4、controller:


/**
* 导出数据列表
*
* @return
*/
@ApiOperation(value = "导出数据列表", notes = "导出数据列表")
@GetMapping(value = "/expor")
public void expor(@ApiIgnore Dto dto, HttpServletResponse response) {
try {
String fileName = "数据列表" + DateUtils.getDate("yyyyMMddHHmmss");
//Service调用相应查询数据方法
List<VO> list = Service.expor(dto);
EasyExcelUtil.export2Web(response, fileName, "数据列表", VO.class, list);
} catch (Exception e) {
logger.info("导出数据列表失败!失败信息:{}", e.getMessage());
}
}

未经允许不得转载:科技师 » java如何导出excel_java导出excel的工具及方法

相关文章