ExcelUtil 生成excel工具

import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment;

import java.util.List;
import java.util.Map;

public class ExcelUtil {

    /**
     * 生成Excel workbook工具类,后去workbook后,可以直接调用OutputStream out = response.getOutputStream();workbook.write(out);返回
     * @param headers
     * @param contents
     * @return
     */
    public static HSSFWorkbook buildExcel(Map<String, String> headers, List<Map<String, String>> contents) {
        HSSFWorkbook workbook = new HSSFWorkbook(); // 创建一个excel
        HSSFSheet sheet = workbook.createSheet("Sheet1");// 新建sheet页

        HSSFCellStyle cellStyle = workbook.createCellStyle(); // 新建单元格样式
        cellStyle.setFillForegroundColor((short) 13);// 设置背景色
        cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
        cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中
        cellStyle.setWrapText(true);// 设置自动换行

        //设置标题
        HSSFRow titleRow = sheet.createRow(0);
        int[] i = {0};
        headers.forEach((key, val) -> titleRow.createCell(i[0]++).setCellValue(val));

        //设置内容
        int row = 1; int[] j = {0};
        for (Map<String, String> data : contents) {
            HSSFRow hssfRow = sheet.createRow(row++);
            j[0] = 0;
            headers.forEach((key, v) -> {
                String val = data.get(key);
                hssfRow.createCell(j[0]++).setCellValue(val);
            });
        }

        return workbook;
    }
}

关注公众号获取更多内容,有问题也可在公众号提问哦:

强哥叨逼叨

叨逼叨编程、互联网的见解和新鲜事

发布了54 篇原创文章 · 获赞 69 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/seanxwq/article/details/100731181