Apache POI技术-在Java中的基本使用

05-29 1546阅读

Apache POI技术-在Java中的基本使用

文章目录

  • Apache POI技术-在Java中的基本使用
  • 前言
  • 一、Apache POI是什么?
    • 1.Apache POI简介:
    • 2.Apache POI主要包括的模块:
    • 3.Apache POI 的应用场景:
      • 报表生成:
      • 数据导入导出:
      • 模板生成:
      • 自动化办公流程:
      • 二、Apache POI基本使用方法
        • 1.引入Maven坐标依赖
        • 2.将数据写入Excel文件
        • 3.读取Excel文件中的数据
        • 总结

          前言

          Apache POI(Poor Obfuscation Implementation)是Apache软件基金会的一个开源项目,提供了用于读写Microsoft Office格式文件(如Word文档、Excel表格、PowerPoint幻灯片)的Java API。POI技术使Java开发人员能够轻松地操作和处理Office文档,为他们提供了丰富的功能和灵活性。


          一、Apache POI是什么?

          1.Apache POI简介:

          Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。

          Apache POI技术-在Java中的基本使用

          2.Apache POI主要包括的模块:

          HSSF:用于操作Excel文件中的.xls格式的数据,提供了读写Excel文件的功能。

          XSSF:用于处理Excel文件中的.xlsx格式的数据,支持Excel 2007及以上版本的文件。

          HWPF:用于操作Word文件中的.doc格式的数据,提供了读写Word文件的功能。

          XWPF:用于处理Word文件中的.docx格式的数据,支持Word 2007及以上版本的文件。

          HSLF:用于操作PowerPoint文件中的.ppt格式的数据,提供了读写PowerPoint文件的功能。

          XSLF:用于处理PowerPoint文件中的.pptx格式的数据,支持PowerPoint 2007及以上版本的文件。

          一般情况下,POI 都是用于操作 Excel 文件。

          3.Apache POI 的应用场景:

          报表生成:

          在企业应用中,经常需要生成各种类型的报表,如财务报表、销售报表等。Apache POI技术可以帮助开发人员轻松生成Excel或Word格式的报表,并实现自动化的数据填充和格式化。

          数据导入导出:

          在数据处理应用中,经常需要将数据从Excel或其他Office文件中读取,或者将数据写入到这些文件中。Apache POI技术提供了读写Excel、Word、PowerPoint等文件的API,能够方便地实现数据导入导出功能。

          模板生成:

          有时候需要根据特定的模板生成文档,如合同、报价单等。Apache POI技术可以帮助开发人员读取模板并进行修改,以生成符合需求的文档。

          自动化办公流程:

          在企业应用中,有些流程需要多个人协同完成,如审批流、报销流程等。Apache POI技术可以结合工作流引擎,实现自动化的办公流程,从而提高工作效率和精度。

          二、Apache POI基本使用方法

          1.引入Maven坐标依赖

              org.apache.poi
              poi
              3.16
          
          
              org.apache.poi
              poi-ooxml
              3.16
          
          

          2.将数据写入Excel文件

          代码如下(示例):

          /**
               * 通过poi创建一个excel文件,并写入数据
               */
              public  static void write() throws Exception {
                  //在内存中,创建一个excel文件
                  XSSFWorkbook excel = new XSSFWorkbook();
                  //在excel文件中创建sheet页
                  XSSFSheet sheet = excel.createSheet("测试111");
                  //在sheet页中创建行,rownum编号从0开始
                  XSSFRow row = sheet.createRow(1);
                  //创建单元格,并将数据写入单元格
                  row.createCell(1).setCellValue("姓名");
                  row.createCell(2).setCellValue("城市");
                  //创建新行
                  row = sheet.createRow(2);
                  row.createCell(1).setCellValue("张三");
                  row.createCell(2).setCellValue("北京");
                  //再创建新行
                  row = sheet.createRow(3);
                  row.createCell(1).setCellValue("李四");
                  row.createCell(2).setCellValue("南京");
                  //创建输出流对象,将内存中的excel写入到磁盘
                  FileOutputStream outputStream =  new FileOutputStream(new File("C:\\Users\\ABC\\Desktop\\info.xlsx"));
                  excel.write(outputStream);
                  //关闭资源
                  outputStream.close();
                  excel.close();
              }
          

          实现效果:

          Apache POI技术-在Java中的基本使用

          3.读取Excel文件中的数据

          代码如下(示例):

           /**
               * 通过poi读取excel文件内容
               */
              public static void read() throws Exception{
                  
                  //获取输入流对象
                  FileInputStream fileInputStream = new FileInputStream(new File("C:\\Users\\ABC\\Desktop\\info.xlsx"));
                  
                  //创建excel对象,读取excel文件
                  XSSFWorkbook excel =  new XSSFWorkbook(fileInputStream);
                  
                  //读取excel文件中第一个sheet页
                  XSSFSheet sheetAt = excel.getSheetAt(0);
                  
                  //获取excel中数据最后一行的行号
                  int lastRowNum = sheetAt.getLastRowNum();
                  
                  //从第二行开始读
                  for (int i = 1; i 
                      //获得某一行数据
                      XSSFRow row = sheetAt.getRow(i);
                      //获得第二个单元格对象
                      String cellValue1 = row.getCell(1).getStringCellValue();
                      //获得第三个单元格对象
                      String cellValue2 = row.getCell(2).getStringCellValue();
                      //打印数据
                      System.out.println(cellValue1+"  "+cellValue2);
                  }
                  
                  //关闭资源
                  fileInputStream.close();
                  excel.close();
              }
          
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]