//调用方法
/*
- String ExcelName Excel文件名称
- String sheetName Sheet页名称
- String[] heads 生成excel表头
- String[] titles 表头对应实体属性
*List<Map<String,Object>> resList 数据
*/
writerExcel(ExcelName,sheetName,heads,titles,resList);
//生成ExcelUtil方法
/**
* 数据写入Excel文件
*
* @param path 文件路径,包含文件全名,例如:D://file//demo.xls
* @param name sheet名称
* @param titles 行标题列
* @param values 数据集合,key为标题,value为数据
* @return True\False
*/
public static BigDecimal writerExcel(String path, String name,String[] excelHead, List<String> titles, List<Map<String, Object>> values) {
System.out.println("path : {}"+ path);
String style = path.substring(path.lastIndexOf("."), path.length()).toUpperCase(); // 从文件路径中获取文件的类型
return generateWorkbook(path, name, style,excelHead, titles, values);
}
/**
* 将数据写入指定path下的Excel文件中
*
* @param path 文件存储路径
* @param name sheet名
* @param style Excel类型
* @param titles 标题串
* @param values 内容集
* @return True\False
*/
private static BigDecimal generateWorkbook(String path, String name, String style, String[] excelHead, List<String> titles, List<Map<String, Object>> values) {
System.out.println("file style : {}"+ style);
BigDecimal dataLen = new BigDecimal("0");
Workbook workbook;
if (".XLS".equals(style.toUpperCase())) {
workbook = new HSSFWorkbook();
} else {
//提供了一种基于XSSF的低内存占用的SXSSF方式
workbook = new SXSSFWorkbook();
}
// 生成一个表格
Sheet sheet;
if (null == name || "".equals(name)) {
sheet = workbook.createSheet(); // n