Apache POI的基本使用详解

yizhihongxing

《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日

相关文章

  • Spring集成Mybatis过程详细讲解

    下面就为您详细讲解“Spring集成Mybatis过程详细讲解”的完整攻略。 1. 前置条件 在开始Spring集成Mybatis之前,您需要先安装好以下开发环境: JDK(Java Development Kit):1.8及以上版本 Maven:3.0及以上版本 Spring:5.0及以上版本 Mybatis:3.4及以上版本 2. 创建Maven工程 首…

    Java 2023年5月20日
    00
  • Java Arrays.sort()用法详解

    Java Arrays.sort()用法详解 Arrays.sort()是Java中的一个标准库函数,用于对数组进行排序,它可以对任何类型的数组进行排序(例如,整型、浮点数、字符串等等),本文将对该函数的用法进行详解。 语法 Arrays.sort(array, [fromIndex], [toIndex], [comparator]) array 参数是要…

    Java 2023年5月26日
    00
  • mysql 海量数据的存储和访问解决方案

    MySQL 是一种流行的关系型数据库,通常被用于存储和管理各种规模大小的数据。针对海量数据的存储和访问问题,有以下几种解决方案: 1. 数据分区 概述 数据分区是指把数据库表中的数据分散到不同的存储设备上,以提高对大量数据的查询和处理性能。MySQL 支持两种分区方式:根据范围分区和根据哈希值分区。根据范围分区是指把表的每个分区按照指定的范围划分,而根据哈希…

    Java 2023年6月16日
    00
  • Django使用paginator插件实现翻页功能的实例

    让我们来详细讲解如何使用Django的Paginator插件实现翻页功能的实例。 什么是Paginator插件 Paginator插件是Django自带的一个分页插件,可以方便地实现在查询数据时将结果按照指定条数进行分页显示,并提供了一个简单的分页导航栏,让用户方便快捷地在不同页面间进行切换。 Paginator插件的使用步骤 下面我们来一步一步地讲解如何使…

    Java 2023年6月16日
    00
  • Kafka 安装与配置详细过程

    下面是 Kafka 安装与配置的详细攻略: 安装 Kafka 下载 Kafka 压缩包: wget http://mirrors.ocf.berkeley.edu/apache/kafka/2.8.0/kafka_2.13-2.8.0.tgz 解压缩 Kafka 压缩包: tar -xzf kafka_2.13-2.8.0.tgz 进入解压后的 Kafka …

    Java 2023年5月20日
    00
  • Java实现文件分割与合并

    当我们处理大量数据时,文件分割与合并是一项非常重要的技能。对于Java开发者来说,使用Java实现文件分割与合并是一项基本技能。下面是一些示例,解释如何使用Java实现这些操作。 1. 文件分割 对大型文件进行分割是一种常见的文件处理方式。Java提供了许多方法来实现此目的。以下代码显示了如何使用Java分割文件: import java.io.*; pub…

    Java 2023年5月20日
    00
  • springMVC实现文件上传和下载

    下面我将详细讲解 Spring MVC 实现文件上传和下载的完整攻略。 文件上传 准备工作 在 Spring MVC 中,文件上传需要使用 MultipartResolver 接口来进行解析。常用的实现类有两种,分别是: StandardServletMultipartResolver:使用 Servlet API(3.0)中的 Part 接口进行文件上传解…

    Java 2023年6月15日
    00
  • Java中的匿名内部类是什么?

    匿名内部类是Java中一种特殊的类定义方式,它没有类名,而是将类定义作为表达式的一部分。匿名内部类常常用于定义一个只需要使用一次的类。 在Java中,匿名内部类可以是接口的实现类、抽象类的实现类或者普通类的子类。它通常会隐式地继承一个类或实现一个接口,同时还可以拥有自己的方法和属性。匿名内部类的定义方式与普通类的定义方式相似,但使用了不同的语法。 匿名内部类…

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