java poi 生成excel表格并下载

我使用的是Springboot框架开发的。首先需要在pom.xml文件中引入以下maven包:

        
            org.apache.poi
            poi
            3.10-FINAL
        


        
          org.apache.poi
           poi-ooxml
           3.8
         

然后编写一个excel工具类,使用时直接调用即可。

package com.label.tool;

import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.util.CellRangeAddress;

import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

public class ExcelTool {
    /**
     * Excel批量导出
     * @param response  响应结果
     * @param title  标题
     * @param head   表头
     * @param t      实体类
     * @param sheetName   表标签名
     * @param fileName    文件名称
     * @param columnWidth  表格宽度
     * @throws Exception
     */
    public static void exportExcel(HttpServletResponse response,
                                   String title,
                                   List head,
                                   List t,
                                   String sheetName,
                                   String fileName,
                                   int columnWidth) throws Exception {

        //声明一个工作簿
        HSSFWorkbook workbook = new HSSFWorkbook();
        //生成一个表格,设置表格名称
        HSSFSheet sheet = workbook.createSheet(sheetName);
        //设置表格列宽度
        sheet.setDefaultColumnWidth(columnWidth);
        //写入表头数据
        int rowIndex = 0;
        if(!"".equals(title)&&title!=null) {
            HSSFRow rowHead = sheet.createRow(0);
            HSSFCell cell = rowHead.createCell(0);
            HSSFRichTextString text = new HSSFRichTextString(title);
            cell.setCellValue(text);
            // 设置字体
            CellStyle cellStyle = workbook.createCellStyle();
            HSSFFont redFont = workbook.createFont();
            //设置字体大小
            redFont.setFontHeightInPoints((short) 18);
            //字体
            redFont.setFontName("黑体");
            //设置居中
            cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
            cellStyle.setFont(redFont);
            cell.setCellStyle(cellStyle);
            CellRangeAddress region = new CellRangeAddress(0, 1, 0, 14);
            sheet.addMergedRegion(region);
            rowIndex = 2;
        }
        int cellIndex=0;
        HSSFRow rowHead = sheet.createRow(rowIndex++);
        for(String h : head){
            //创建一个row行,然后自增1
            //创建一个单元格
            HSSFCell cell = rowHead.createCell(cellIndex++);
                //创建一个内容对象
            HSSFRichTextString text = new HSSFRichTextString(h);
                //将内容对象的文字内容写入到单元格中
            cell.setCellValue(text);
        }
        for(int j=0;j

 

你可能感兴趣的:(SpringBoot,Java)