使用Java将表格数据导出成Excel格式

前言:本文使用后台处理的办法导出前端表格中显示的数据。

引入依赖

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.17</version>
        </dependency>

书写PoiUtils

public class PoiUtils {

    public  static ResponseEntity<byte[]> exportExcel(List<Market> marketList) throws IOException {
        HttpHeaders headers=null;
        //创建文档
        HSSFWorkbook workbook = new HSSFWorkbook();
        //创建excel文档
        HSSFSheet sheet = workbook.createSheet("市场表");
  
        //定义列的宽度
        sheet.setColumnWidth(0, 5 * 256);
        sheet.setColumnWidth(1, 10 * 256);
        sheet.setColumnWidth(2, 10 * 256);
        sheet.setColumnWidth(3, 10 * 256);
        sheet.setColumnWidth(4, 10 * 256);
        //设置表头
        HSSFRow headerRow = sheet.createRow(0);
        headerRow.createCell(0).setCellValue("编号");
        headerRow.createCell(1).setCellValue("主题");
        headerRow.createCell(2).setCellValue("预算");
        headerRow.createCell(3).setCellValue("线索");

        for (int i=0;i<marketList.size();i++){
            HSSFRow row = sheet.createRow(i+1);
            Market market = marketList.get(i);
            row.createCell(0).setCellValue(market.getId());
            row.createCell(1).setCellValue(market.getTheme());
            row.createCell(2).setCellValue(market.getbudget());
            row.createCell(3).setCellValue(market.getClue());
        }


        //将excel写入到ByteArrayOutStream中
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        workbook.write(bos);
        headers=new HttpHeaders();
        headers.setContentDispositionFormData("attachment",
                new String("员工表.xls".getBytes("utf-8"),"iso-8859-1"));
        //创建ResponseEntity实体并返回
        return new ResponseEntity<byte[]>(bos.toByteArray(), headers, HttpStatus.CREATED);

    }
}

显示效果

猜你喜欢

转载自www.cnblogs.com/gfbzs/p/12272988.html