• 在Java中入门,读取和创建Excel,Apache POI的使用


    POI介绍

    Apache POI 简介是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office(Excel、WORD、PowerPoint、Visio等)格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“可怜的模糊实现”。

    Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文件

    maven坐标:

    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>3.14</version>
    </dependency>
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>3.14</version>
    </dependency>

    POI结构:

    HSSF - 提供读写Microsoft Excel XLS格式档案的功能 (office97-2003版本支持,.xls)
    XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能(office 2007以后的版本支持,.xlsx)
    HWPF - 提供读写Microsoft Word DOC格式档案的功能
    HSLF - 提供读写Microsoft PowerPoint格式档案的功能
    HDGF - 提供读Microsoft Visio格式档案的功能
    HPBF - 提供读Microsoft Publisher格式档案的功能
    HSMF - 提供读Microsoft Outlook格式档案的功能

    简单入门

    从Excel文件读取数据

    注意:用于测试的excel里面数据必须使用字符串(不要使用数字或日期),否则测试会失败。

    使用POI可以从一个已经存在的Excel文件中读取数据

    //创建工作簿
    XSSFWorkbook workbook = new XSSFWorkbook("D:\hello.xlsx");
    //获取工作表,既可以根据工作表的顺序获取,也可以根据工作表的名称获取
    XSSFSheet sheet = workbook.getSheetAt(0);
    //遍历工作表获得行对象
    for (Row row : sheet) {
      //遍历行对象获取单元格对象
      for (Cell cell : row) {
        //获得单元格中的值
        String value = cell.getStringCellValue();
        System.out.println(value);
      }
    }
    workbook.close();

    POI操作Excel表格封装了几个核心对象:

    XSSFWorkbook:工作簿
    XSSFSheet:工作表
    Row:行
    Cell:单元格

    向Excel文件写入数据

    //在内存中创建一个Excel文件
    XSSFWorkbook workbook = new XSSFWorkbook();
    //创建工作表,指定工作表名称
    XSSFSheet sheet = workbook.createSheet("传智播客");
    
    //创建行,0表示第一行
    XSSFRow row = sheet.createRow(0);
    //创建单元格,0表示第一个单元格
    row.createCell(0).setCellValue("编号");
    row.createCell(1).setCellValue("名称");
    row.createCell(2).setCellValue("年龄");
    
    XSSFRow row1 = sheet.createRow(1);
    row1.createCell(0).setCellValue("1");
    row1.createCell(1).setCellValue("小明");
    row1.createCell(2).setCellValue("10");
    
    XSSFRow row2 = sheet.createRow(2);
    row2.createCell(0).setCellValue("2");
    row2.createCell(1).setCellValue("小王");
    row2.createCell(2).setCellValue("20");
    
    //通过输出流将workbook对象下载到磁盘
    FileOutputStream out = new FileOutputStream("D:\itcast.xlsx");
    workbook.write(out);
    out.flush();
    out.close();
    workbook.close();
  • 相关阅读:
    面向对象
    6.jQuery基础_试题
    5.JavaScript操作BOM、DOM对象_试题
    css疑问
    JAVA学习笔记_五JAVA开发中的WEB前端技术
    java学习笔记_mysql随堂考试_错题
    java学习笔记④MySql数据库--03/04 DQL查询
    java学习笔记④MySql数据库--01/02 database table 数据的增删改
    java学习笔记③JAVA核心API编程-01集合框架和泛型
    java学习笔记②JAVA面向对象
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/13738456.html
Copyright © 2020-2023  润新知