龙空技术网

java导出excel(easypoi)

walker程序员 108

前言:

此刻看官们对“java导出excel设置单元格样式”大体比较重视,各位老铁们都需要剖析一些“java导出excel设置单元格样式”的相关资讯。那么小编也在网上网罗了一些关于“java导出excel设置单元格样式””的相关内容,希望大家能喜欢,我们一起来了解一下吧!

介绍

easypoi功能如同名字easy,主打的功能就是容易,让一个没接触过poi的人员就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板官网地址:

easypoi需要导入的包

<!--easypoi--><dependency>  <groupId>cn.afterturn</groupId>  <artifactId>easypoi-base</artifactId>  <version>3.2.0</version></dependency><dependency>  <groupId>cn.afterturn</groupId>  <artifactId>easypoi-web</artifactId>  <version>3.2.0</version></dependency><dependency>  <groupId>cn.afterturn</groupId>  <artifactId>easypoi-annotation</artifactId>  <version>3.2.0</version></dependency>
easypoi工具类

package com.meeno.framework.office.excel.easypoi.utils;

import cn.afterturn.easypoi.excel.ExcelExportUtil;

import cn.afterturn.easypoi.excel.ExcelImportUtil;

import cn.afterturn.easypoi.excel.entity.ExportParams;

import cn.afterturn.easypoi.excel.entity.ImportParams;

import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;

import org.apache.commons.lang3.StringUtils;

import org.apache.poi.ss.usermodel.Workbook;

import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

import java.io.File;

import java.io.IOException;

import java.net.URLEncoder;

import java.util.List;

import java.util.Map;

import java.util.NoSuchElementException;

/**

* @description: easypoiUtils

* @author: Wzq

* @create: 2019-11-08 14:54

*/

public class ExcelUtiles {

public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass,

String fileName, boolean isCreateHeader, HttpServletResponse response){

ExportParams exportParams = new ExportParams(title, sheetName);

exportParams.setCreateHeadRows(isCreateHeader);

defaultExport(list, pojoClass, fileName, response, exportParams);

}

public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass,String fileName,

HttpServletResponse response){

defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));

}

public static void exportExcel(List<Map<String, Object>> list, String fileName, HttpServletResponse response){

defaultExport(list, fileName, response);

}

private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName,

HttpServletResponse response, ExportParams exportParams) {

Workbook workbook = ExcelExportUtil.exportExcel(exportParams,pojoClass,list);

if (workbook != null); downLoadExcel(fileName, response, workbook);

}

private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {

try {

response.setCharacterEncoding("UTF-8");

response.setHeader("content-Type", "application/vnd.ms-excel");

response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));

workbook.write(response.getOutputStream());

} catch (IOException e) {

//throw new NormalException(e.getMessage());

}

}

private static void defaultExport(List<Map<String, Object>> list, String fileName, HttpServletResponse response) {

Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF);

if (workbook != null);

downLoadExcel(fileName, response, workbook);

}

public static <T> List<T> importExcel(String filePath,Integer titleRows,Integer headerRows, Class<T> pojoClass){

if (StringUtils.isBlank(filePath)){

return null;

}

ImportParams params = new ImportParams();

params.setTitleRows(titleRows);

params.setHeadRows(headerRows);

List<T> list = null;

try {

list = ExcelImportUtil.importExcel(new File(filePath), pojoClass, params);

}catch (NoSuchElementException e){

//throw new NormalException("模板不能为空");

} catch (Exception e) {

e.printStackTrace();

//throw new NormalException(e.getMessage());

} return list;

}

public static <T> List<T> importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class<T> pojoClass){

if (file == null){ return null;

}

ImportParams params = new ImportParams();

params.setTitleRows(titleRows);

params.setHeadRows(headerRows);

List<T> list = null;

try {

list = ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params);

}catch (NoSuchElementException e){

// throw new NormalException("excel文件不能为空");

} catch (Exception e) {

//throw new NormalException(e.getMessage());

System.out.println(e.getMessage());

}

return list;

}

}

创建导出excel模板的实体类,也可以按照模板导出具体看官网文档

导出excel模板的实体类代码如下:

package com.meeno.framework.office.excel.easypoi.model;import cn.afterturn.easypoi.excel.annotation.Excel;import lombok.Data;import java.io.Serializable;/** * @description: 签到记录ExecelModel * @author: Wzq * @create: 2020-01-07 11:34 */@Datapublic class SignRecordExcelModel implements Serializable {    /**     * 序号     */    @Excel(name = "序号",orderNum = "0")    private Integer number;    /**     * 人员名称     */    @Excel(name = "人员名称",orderNum = "1")    private String employeeName;    /**     * 座位号     */    @Excel(name = "座位号",orderNum = "2")    private Integer seatNum;    /**     * 签到状态     */    @Excel(name = "签到状态",orderNum = "3")    private String signStatusStr;}
使用easypoi导出excel

controller层调用代码

/**    *@Description 导出登录记录表    *@Param [session, request, response, data]    *@Return void    *@Author Wzq    *@Date 2020/1/7    *@Time 11:06    */    @RequestMapping(value = "exportSignRecord.action")    public void  exportSignRecord(final HttpSession session,                                  final HttpServletRequest request,                                  final HttpServletResponse response,                                  @RequestParam(value = "Data",required = false) String data){        JSONObject jsonObject = JSONObject.parseObject(data);        //会议id        Long meetingId = jsonObject.getLong("meetingId");        List<SignRecordExcelModel> signRecordExcelModels = this.signRecordService.exportSignRecord(meetingId);        Meeting meeting = this.meetingService.getMeetingDetail(meetingId);        //第一参数:导出的模板类集合        //第二参数:excel中里面内容合并单元格的title        //第三参数:seeetName名称        //第四参数:导出模板实体类的class        //第五参数:导出文件文件名        //第六参数:HttpServletResponse        ExcelUtiles.exportExcel(signRecordExcelModels,"","签到表",SignRecordExcelModel.class,meeting.getName()+"签到表.xlsx",response);    }
导出效果

原创 GoslingWu 架构师与哈苏

标签: #java导出excel设置单元格样式