《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技术站