2019-05-19 java使用POI将数据导出放入Excel

本文主要是将数据库取出的数据按照自定义的行列格式导出到excel中,POI则是实现我们需求所用到的技术。

POI介绍

使用spring boot导入相关依赖

获取数据(自行处理)

完整代码实例:创建excel,将数据写入excel.

1.poi介绍

要想使用poi对Excel进行操作,我们需要了解一下Excel俩种版本:一种版本扩展名是“.xls;”XSSF:操作的是.xlsx。
不挂那种操作,基本思路一样,先要对应一个Excel文件,然后在对应文件中的某个sheet,接下来在操作某一行和这一行中的某一列。对应POI包:文件(webbook)、sheet(sheet)、行(row)、和单元格(cell).
详细操作请参照POI官网的Excel(HSSF/XSSF)操作

2.通过spring boot导入依赖

为了使用java操控excel,需要将相关的jar引入,对于HSSF只需要导入POI.jar,而XSSF则需要导入四个jar,具体导入见下面代码
将代码块的依赖放入工程的pom.xml文件中就可以了。
工程不是spring boot的需要手动将下面jar导入。


        
            org.apache.poi
            poi
            RELEASE
        

3.完整代码实例:简单的创建excel,将数据写入excel

依赖导入成功之后,就可以开始进行excel的生成。详细步骤在代码注释中有说明。

/**
 * 〈一句话功能简述〉
* 〈Excel导出的工具类〉 * 创建excel * @param * @author 13481 * @create 2019/5/18 * @since 1.0.0 * @return */ public class ExportToExcel { @Autowired PublicPropertyDao publicPropertyDao; public XSSFWorkbook exportExcel(List listresult){ //1.创建XSSFWorkbook,一个XSSFWorkbook对应的Excel文件 XSSFWorkbook web=new XSSFWorkbook(); //2.在work中添加一个sheet,对应excel文件中的sheet XSSFSheet sheet=web.createSheet("sheet1"); //3.设置表头,即每个列的列名 //创建第一行 XSSFRow row=sheet.createRow(0); //此处创建一个序列号 row.createCell(0).setCellValue("序号"); //将列名写入 String[] title={"缺陷编码","缺陷摘要","所属模块","所属系统","缺陷归属系统","所属功能","所属案例编号" ,"所属案例名称","缺陷类型","严重程度","优先级","可重现","修复次数","重打开次数","缺陷状态","缺陷类型再确定","所属计划" ,"创建时间","预计修复时间","创建人","分派至","缺陷描述","注释","确认时间","确认人","分派时间","分派人","修复时间" ,"修复人","关闭时间","关闭人","修改时间","修改人","测试环境","所属机构","所属任务","所属组"}; for(int i=0;i

接下来完成控制层数据的生成,然后调用工具类,就OK了。

public Map ExporttToCsv(String format,String rows,HttpServletRequest request) throws IOException {
 Map resultMap = new HashMap();
        ExportToExcel exportToExcel = new ExportToExcel();
    List list=JSONArray.parseArray(rows,DefectMessage.class);
            //1生成Excel
            XSSFWorkbook defectListExcel=exportToExcel.exportExcel(list);
            try{
                // 输出成文件
                File file=new File(".");
                String path=file.getCanonicalPath();
                String ys=path+"/DefectMessage.xlsx";
                // TODO 生成的wb对象传输
                FileOutputStream outputStream = new FileOutputStream(new File(ys));
                defectListExcel.write(outputStream);
                outputStream.close();
            }catch(Exception e){
                e.printStackTrace();
            }
            resultMap.put("success", true);
}

你可能感兴趣的:(2019-05-19 java使用POI将数据导出放入Excel)