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日

相关文章

  • java实现向有序数组中插入一个元素实例

    当需要向有序数组中插入一个新的元素时,我们可以使用以下步骤: 步骤 1:创建有序数组 首先,我们需要创建一个已经排好序的数组。可以使用Java中的数组来完成,或者也可以使用List等其他数据结构。 步骤 2:确定插入位置 在插入新元素之前,我们需要确定新元素应该插入的位置。由于数组已经排好序,我们可以使用二分查找来找到插入位置,使用Java提供的Arrays…

    Java 2023年5月26日
    00
  • CentOS Tomcat 的启动服务脚本

    下面是 CentOS 上启动 Tomcat 服务的脚本完整攻略。 准备工作 首先,在 CentOS 中需要安装 Tomcat 和 JDK。 可以通过如下命令安装: # 安装 JDK yum install java-1.8.0-openjdk # 安装 Tomcat yum install tomcat 编写启动脚本 进入 Tomcat 的 bin 目录,创…

    Java 2023年5月20日
    00
  • java 文件上传到读取文件内容的实例

    以下是 Java 文件上传到读取文件内容的实例的完整攻略,本文将涵盖以下内容: Java 文件上传的基本原理 Java 文件上传的流程和具体实现方式 Java 读取文件内容的基本原理 Java 读取文件内容的具体实现方式和示例代码 1. Java 文件上传的基本原理 Java 文件上传本质上就是客户端把本地文件传输到服务器的过程,实现文件上传可以通过POST…

    Java 2023年5月20日
    00
  • Maven 安装目录的详细介绍

    下面是 Maven 安装目录的详细介绍: 1. 下载 Maven 首先,你需要从 Maven 官网上下载安装包。在官网上有两个版本可以选择,一个是二进制版本,一个是源代码版本。对于大部分使用者来说,使用二进制版本就可以满足需求。下载完安装包后,解压到你想要安装的目录。 2. 配置环境变量 安装完 Maven 后,可以将 Maven 安装目录添加到环境变量 P…

    Java 2023年5月20日
    00
  • Spring + mybatis + mysql使用事物的几种方法总结

    Spring + Mybatis + MySQL 使用事物的几种方法总结 在 Spring + Mybatis + MySQL 项目中,我们经常需要使用事务来保证多个操作的一致性,或者保证某些操作的原子性。本文将总结一些使用事务的常用方法。 1. 声明式事务 1.1 基于注解的事务管理 1.1.1 配置数据源 首先需要在 Spring 的配置文件中配置数据源…

    Java 2023年5月20日
    00
  • Jquery easyui 实现动态树

    JQuery EasyUI 是一个基于jQuery的UI组件库,提供了常见的UI组件如表格、表单、下拉框、树等等。它简化了前端页面开发的流程,使得开发人员能够更加便捷地构建富客户端应用程序。本篇文章将详细讲解如何使用 JQuery EasyUI 实现一个动态树,并提供两个示例。 一、准备工作 在开始实现动态树之前,我们需要准备以下工作: 1.安装JQuery…

    Java 2023年5月20日
    00
  • SpringBoot 中使用JSP的方法示例

    Spring Boot是一个轻量级的框架,它可以快速地构建基于Java的Web应用程序。相比于Spring Framework而言,Spring Boot带来了更加方便的配置方式,同时也提供了一些默认的配置,让开发者快速构建应用程序。但是,在默认的情况下,Spring Boot并不支持JSP作为视图层,若要使用JSP需要另外进行配置。下面就是Spring B…

    Java 2023年6月15日
    00
  • 利用java读取web项目中json文件为map集合方法示例

    以下是“利用java读取web项目中json文件为map集合方法示例”的完整攻略: 1. 引入依赖 首先需要引入jackson的依赖,可以使用Maven等项目管理工具来自动引入依赖,也可以手动下载jar包引入到项目中。具体的依赖代码如下: <dependency> <groupId>com.fasterxml.jackson.core…

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