码迷,mamicode.com
首页 > 其他好文 > 详细

Excel工具类

时间:2019-12-05 22:42:03      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:add   pos   catch   content   enc   val   -o   port   tom   

Excel需要导入的jar包

    <!--  导出excel  -->
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>3.16</version>
    </dependency>

Excel工具类的代码

import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.xssf.streaming.SXSSFCell;
import org.apache.poi.xssf.streaming.SXSSFRow;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ExcelUtil {

    public static void datasToExcel(List<String> fieldList, List<Map<String, Object>> dataList, String fileDir, String fileName){
        SXSSFWorkbook wbs = new SXSSFWorkbook(2000);
        CellStyle headStyle = wbs.createCellStyle();
        headStyle.setBorderBottom(CellStyle.BORDER_THIN);
        headStyle.setBorderLeft(CellStyle.BORDER_THIN);
        headStyle.setBorderRight(CellStyle.BORDER_THIN);
        headStyle.setBorderTop(CellStyle.BORDER_THIN);
        headStyle.setAlignment(CellStyle.ALIGN_CENTER);
        Font font = wbs.createFont();
        wbs.createFont().setBoldweight(Font.BOLDWEIGHT_BOLD);
        headStyle.setFont(font);
        CellStyle contentStyle = wbs.createCellStyle();
        contentStyle.setBorderBottom(CellStyle.BORDER_THIN);
        contentStyle.setBorderLeft(CellStyle.BORDER_THIN);
        contentStyle.setBorderRight(CellStyle.BORDER_THIN);
        contentStyle.setBorderTop(CellStyle.BORDER_THIN);

        // 设置工作蒲的标签名
        SXSSFSheet sheet =  wbs.createSheet("firstSheet");
        SXSSFRow headRow = sheet.createRow(0);
        // 设置excel表头字段列
        for (int i = 0; i < fieldList.size(); i++) {
            SXSSFCell headCell = headRow.createCell(i);
            headCell.setCellStyle(headStyle);
            headCell.setCellValue(fieldList.get(i));
        }
        // 设置excel内容列
        for(int i = 0; i < dataList.size(); i++){
            SXSSFRow contentRow = sheet.createRow(i + 1);
            for (int j = 0; j < fieldList.size(); j++) {
                SXSSFCell contentCell = contentRow.createCell(j);
                contentCell.setCellStyle(contentStyle);

                Object o = dataList.get(i).get(fieldList.get(j));
                contentCell.setCellValue(o==null?"":String.valueOf(o));
            }
        }

        try {
            String filePath = new StringBuilder(fileDir).append(File.separator).append(fileName).toString();
            File file = new File(filePath);
            OutputStream fileOut = new FileOutputStream(file);
            wbs.write(fileOut);
            fileOut.close();
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            wbs.dispose();
        }
    }
    // field:字段
    public static void main(String[] args) {
        List<String> fieldList = new ArrayList<>();
        fieldList.add("id");
        fieldList.add("name");
        fieldList.add("age");

        List<Map<String, Object>> dataList = new ArrayList<>();

        Map<String, Object> map = new HashMap<>();
        map.put("id", "1");
        map.put("name", "zqd");
        map.put("age", 22);

        Map<String, Object> map2 = new HashMap<>();
        map2.put("id", "2");
        map2.put("name", "zqd2");
        map2.put("age", 23);

        Map<String, Object> map3 = new HashMap<>();
        map3.put("id","3");
        map3.put("name","zaq");
        map3.put("age",21);

        dataList.add(map);
        dataList.add(map2);
        dataList.add(map3);

        // 文件的路径
        String fileDir = "D:\\git_test\\test";
        // 文件名   Excel:excel:2007-2016版用的是:xlsx 拓展名   excel:97-2003版用的是:xls 拓展名
        String fileName = "test.xlsx";

        datasToExcel(fieldList, dataList, fileDir, fileName);
    }
}

 

Excel工具类

标签:add   pos   catch   content   enc   val   -o   port   tom   

原文地址:https://www.cnblogs.com/zengqinghong/p/11991966.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!