POI导出excel学习

Posted miaoww

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POI导出excel学习相关的知识,希望对你有一定的参考价值。

1.POI是什么?

  • poi是Apache团队开发的专门面对用java处理Excel文档的工具。
  • 官网地址:https://poi.apache.org/

2.操作流程

  • 此部分通过代码解释使用POI将集合导出Excel的流程,在下一节中详细解释。
   /**
     * 将集合转化为Excel表格
     */
    public void getExcel(List<List<String>> list) throws IOException {
        //1.标题
        String[] title = {"招聘名称", "投递邮箱", "信息来源", "信息城市", "来源网站"};
        //2.文件名
        String fileName = new String("企业邮箱信息.xls".getBytes(), "utf-8");
        //3.sheet名
        String sheetName = new String("梧桐果、海投网、我司企业邮箱信息".getBytes(), "utf-8");

        // 1.创建一个HSSFWorkbook,对应一个Excel文件
        HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
        // 2.在workbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = hssfWorkbook.createSheet(sheetName);
        // 3.在sheet中添加表头第0行,也就是标题行
        HSSFRow row = sheet.createRow(0);
        // 4.创建单元格,并设置单元格格式
        HSSFCellStyle cellStyle = hssfWorkbook.createCellStyle();
        cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//样式为中心水平对齐
        
        //5.创建列单元格
        for (int i = 0; i < title.length; i++) {
            HSSFCell cell = row.createCell(i);
            cell.setCellValue(title[i]);
            cell.setCellStyle(cellStyle);
        }//表头

        for (int y = 0; y < list.size(); y++) {
            HSSFRow row1 = sheet.createRow(y + 1);//创建行
            List<String> strings = list.get(y);
            for (int x = 0; x < title.length; x++) {
                HSSFCell cell = row1.createCell(x);
                cell.setCellValue(strings.get(x));
                cell.setCellStyle(cellStyle);//创建列
            }
        }

        File file = new File("C:\\Users\\bxk\\Desktop\\" + fileName);
        OutputStream outputStream = new FileOutputStream(file);
        hssfWorkbook.write(outputStream);
        outputStream.flush();
        outputStream.close();
    }

 3.具体介绍

3.1文件信息

        //1.标题
        String[] title = {"招聘名称", "投递邮箱", "信息来源", "信息城市", "来源网站"};
        //2.文件名
        String fileName = new String("企业邮箱信息.xls".getBytes(), "utf-8");
        //3.sheet名
        String sheetName = new String("梧桐果、海投网、我司企业邮箱信息".getBytes(), "utf-8");

 

3.2 创建WorkBook

 HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); //对应一个Excel文件

 

 

  demo:如下文就可以生成一个空白的、名为workbook的xlsk文档。注意当文件名为中文的时候可能会出现乱码。使用 new String("中文","utf-8") ,将解决乱码问题。

HSSFWorkbook wb = new XSSFWorkbook(); try (OutputStream fileOut = new FileOutputStream("workbook.xlsx")) { wb.write(fileOut); }

 

3.3创建Sheet

HSSFSheet sheet = hssfWorkbook.createSheet(sheetName);//对应Excel文件中的sheet   其中sheetName不能为 "" ,不能为 Null

 

String safeName = WorkbookUtil.createSafeSheetName("");//这样创建的sheetName ""会转化为empty,null会转化为“null

 

这个sheet我当时也找了好一会,可能是实在是不熟悉Excel。sheet就表示excel中的某一张表,当然既然是表,就会有表名。所以sheetName的作用就是显示表名。上截图解释具体位置。

技术分享图片

 

 

 

 

 

 

打开官网(上面有链接)——API介绍(Component)——快速指南(Quick Guide) 也能看到详细的例子和解释。

技术分享图片

 

以上是关于POI导出excel学习的主要内容,如果未能解决你的问题,请参考以下文章

java如何导出excel表格,如果用poi,java代码如何实现.,求代码!!!

Java 利用poi 导出excel表格 如何在导出时自由选择路径?

基于POI导出Excel数据

java poi导出excel

Java poi导出Excel,小数点后面数据缺失

java poi xwpf操作word生成一个表格怎么合并单元格,求大神指导!