背景
新公司会员分销报表管理系统有导出excel表的场景,通过查找,项目中并没有excel表相关工具类,故手写了工具类给大家分享一下,以备不时之需。
方式一(POI方式)
1.该工具类包含导出和导入解析功能,其中导入解析功能需读者根据自身业务情况做进一步封装。 2.工具类中有笔者自己的CommonException异常类,需读者根据自身业务做相应调整和替换。
import com.zzx.commons.exceptions.CommonException;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.tomcat.util.http.fileupload.FileUploadException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.util.List;
public class ExcelUtil {
private static Logger logger = LoggerFactory.getLogger("info");
/**
* 下载execel表模板
*
* @param response HttpServletResponse
* @param fileName 导出文件名
* @param list 目标表单
* @param title 表头数组
* @param properties 导出属性(与表头对应)
*/
public static void download(HttpServletResponse response, String fileName, List list, String[] title, String[] properties) {
HSSFWorkbook workbook = new HSSFWorkbook();//创建Excel文件(Workbook)
HSSFSheet sheet = workbook.createSheet("sheet1");//创建工作表(Sheet)
//设置第一列宽(3766)
HSSFRow row = sheet.createRow(0);// 创建行,从0开始
for (int i = 0; i |