Apache POI的基本使用详解

《Apache POI的基本使用详解》是一篇介绍Apache POI库的使用方法的文章。Apache POI是一个开源的Java库,用于处理Microsoft Office格式(包括Excel、Word和PowerPoint)的文件。

一、Apache POI的安装

1.下载并安装Java Development Kit(JDK)。

2.下载最新版本的Apache POI jar文件,并将其添加到Java项目中。

二、Apache POI的基本数据类型

Apache POI库支持以下类型的数据:

1.字符串(String)

2.数值(Numeric)

3.日期(Date)

4.布尔值(Boolean)

5.公式(Formula)

三、Apache POI的基本使用方法

1.创建Excel文件

使用Workbook接口的实现类HSSFWorkbook来创建Excel文件。以下代码演示了如何创建一个名为"example.xls"的Excel文件:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;

OutputStream out = new FileOutputStream("example.xls");

Workbook workbook = new HSSFWorkbook();

workbook.write(out);

out.close();

2.创建工作表

使用Workbook接口中的createSheet()方法来创建工作表。以下代码演示了如何创建一个名为"Sheet1"的工作表:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;

OutputStream out = new FileOutputStream("example.xls");

Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");

workbook.write(out);

out.close();

3.创建行

使用Sheet接口中的createRow()方法来创建行。以下代码演示了如何在"Sheet1"工作表中创建第一行:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;

OutputStream out = new FileOutputStream("example.xls");

Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
Row row = sheet.createRow(0);

workbook.write(out);

out.close();

4.创建单元格

使用Row接口中的createCell()方法来创建单元格。以下代码演示了如何在第一行中创建第一列的单元格,并在单元格中写入字符串“Hello World”:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;

OutputStream out = new FileOutputStream("example.xls");

Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Hello World");

workbook.write(out);

out.close();

以上代码将在Excel文件的第一行第一列(即A1单元格)中写入字符串“Hello World”。

示例一:使用Apache POI创建一个包含学生基本信息的Excel表格

假设有一个数据集包含了学生的基本信息,包括姓名、年龄和性别,我们可以使用Apache POI来创建一个Excel表格,并将这些信息写入到表格中。

代码如下:

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

public class StudentExcelWriter {
    public static void main(String[] args) {
        // 创建学生列表
        ArrayList<Student> studentList = new ArrayList<>();
        studentList.add(new Student("Tom", 18, "Male"));
        studentList.add(new Student("Jerry", 17, "Male"));
        studentList.add(new Student("Mary", 19, "Female"));

        // 创建Excel工作簿和工作表
        Workbook workbook = new HSSFWorkbook();
        Sheet sheet = workbook.createSheet("Student Info");

        // 写入表头
        Row headerRow = sheet.createRow(0);
        Cell cell1 = headerRow.createCell(0);
        cell1.setCellValue("姓名");
        Cell cell2 = headerRow.createCell(1);
        cell2.setCellValue("年龄");
        Cell cell3 = headerRow.createCell(2);
        cell3.setCellValue("性别");

        // 写入学生信息
        int rowNum = 1;
        for (Student student : studentList) {
            Row row = sheet.createRow(rowNum++);
            row.createCell(0).setCellValue(student.getName());
            row.createCell(1).setCellValue(student.getAge());
            row.createCell(2).setCellValue(student.getGender());
        }

        // 写入Excel文件
        try {
            OutputStream out = new FileOutputStream("students.xls");
            workbook.write(out);
            out.close();
            System.out.println("成功创建学生信息Excel文件!");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

示例二:使用Apache POI读取已有的Excel文件

假设已经有一个名为“students.xls”的Excel文件,其中包含了很多学生的基本信息。我们可以使用Apache POI来读取这个文件,并将学生信息读取出来。

代码如下:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

public class StudentExcelReader {
    public static void main(String[] args) {
        ArrayList<Student> studentList = new ArrayList<>();

        try {
            InputStream in = new FileInputStream("students.xls");
            Workbook workbook = new HSSFWorkbook(in);
            Sheet sheet = workbook.getSheetAt(0);
            Iterator<Row> rowIterator = sheet.iterator();
            rowIterator.next(); // 跳过表头
            while (rowIterator.hasNext()) {
                Row row = rowIterator.next();
                String name = row.getCell(0).getStringCellValue();
                int age = (int) row.getCell(1).getNumericCellValue();
                String gender = row.getCell(2).getStringCellValue();
                studentList.add(new Student(name, age, gender));
            }
            in.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        for (Student student : studentList) {
            System.out.println(student.getName() + "\t" + student.getAge() + "\t" + student.getGender());
        }
    }
}

以上代码将从“students.xls”中读取学生信息,并将学生信息输出到控制台上。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Apache POI的基本使用详解 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Hibernate save() saveorupdate()的用法

    Hibernate是一个流行的Java ORM框架,在Hibernate中,save()和saveOrUpdate()被广泛用于将Java对象映射到数据库中。在本文中,我们将讨论Hibernate中的save()和saveOrUpdate()方法及其用法,以明确它们的区别和使用场景。 save()方法 Hibernate中的save()方法将新的持久化对象保…

    Java 2023年5月20日
    00
  • SpringDataRedis简单使用示例代码

    下面是“SpringDataRedis简单使用示例代码”的完整攻略: 介绍SpringDataRedis SpringDataRedis是一个基于Spring Framework的,针对Redis数据库的一套完整解决方案的API框架。它支持基于Spring的编程模型,可轻松使用Spring的依赖注入和事务管理,同时支持多种不同Redis驱动。 示例1:连接R…

    Java 2023年5月20日
    00
  • java求数组元素重复次数和java字符串比较大小示例

    下面是讲解“java求数组元素重复次数和java字符串比较大小示例”的完整攻略: Java数组元素重复次数 创建一个整型数组并初始化,例如: int[] arr = {1, 2, 3, 4, 1, 5, 6, 2, 3, 7, 8, 9, 2}; 遍历一次数组,利用HashMap的key-value键值对特性,将数组元素作为key,出现次数作为value存储…

    Java 2023年5月26日
    00
  • SrpingDruid数据源加密数据库密码的示例代码

    首先我们需要明确什么是SpringDruid数据源,以及为什么需要加密数据库密码。 SpringDruid数据源是一种基于Spring框架和阿里巴巴德鲁伊连接池的数据源,它能够提高数据库的连接性能、可用性和稳定性。 在实际应用中,我们通常需要在配置文件中配置数据库连接信息,包括数据库用户名和密码。然而,这样做存在一定风险,因为配置文件可能会被非授权的人员获取…

    Java 2023年5月20日
    00
  • Springboot2.6.x的启动流程与自动配置详解

    Spring Boot 2.6.x的启动流程与自动配置详解 Spring Boot是一个快速开发框架,可以帮助开发人员快速构建Web应用程序。在Spring Boot 2.6.x版本中,启动流程和自动配置得到了进一步的优化和改进。本文将介绍Spring Boot 2.6.x的启动流程和自动配置详解,并提供两个示例。 Spring Boot 2.6.x的启动流…

    Java 2023年5月15日
    00
  • java中map和对象互转工具类的实现示例

    下面是”Java中Map和对象互转工具类的实现示例”的详细攻略: 1. 什么是Map和对象互转工具类? Map和对象互转工具类是Java编程中的一种实用工具,用于实现Map结构与Java对象之间的转换,便于数据的处理和传递。通过Map与Java对象之间的相互转换,我们可以更加方便地对数据进行处理和传递。 2. 如何实现Map和对象互转工具类? 我们可以使用反…

    Java 2023年5月26日
    00
  • Java泛型T,E,K,V,N,?与Object区别和含义

    Java泛型是Java 5之后引入的新特性,可以让我们编写更加类型安全的代码。在泛型中,T、E、K、V、N 和 ? 是常见的符号。它们代表的是不同的类型参数。 T T 是 Java 泛型中最常见的类型,表示任意类型。在定义类或方法时,我们可以使用 T 代替所有可能的类型。例如,下面是一个定义了一个泛型类的例子: public class Box<T&g…

    Java 2023年5月26日
    00
  • Spring Boot学习入门之统一异常处理详解

    Spring Boot学习入门之统一异常处理详解 一、简介 在开发Web应用程序时,不可避免地会遇到各种异常情况。如果没有良好的异常处理机制,系统就很难保证稳定性和安全性。Spring Boot提供了很好的异常处理能力,通过统一异常处理机制可以对出现的异常进行捕获,避免异常导致程序崩溃。 二、异常处理流程 Spring Boot中的异常处理流程如下所示: 当…

    Java 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部