Apache POI (Poor Obfuscation Implementation)是一种 Java API,用于以.xls和.xlsx两种格式读取和写入 Microsoft 文档。它包含类和接口。Apache POI 库提供了两种读取 excel 文件的实现:
- HSSF(Horrible SpreadSheet Format)实现:它表示与 Excel 2003 或更早版本一起使用的 API。
- XSSF(XML 电子表格格式)实现:它表示与 Excel 2007 或更高版本一起使用的 API。
接口
- Workbook: 它代表一个Excel工作簿。它是由HSSFWorkbook和XSSFWorkbook实现的一个接口。
- Sheet:它代表Excel工作薄的一个表单。工作表是工作簿的一个中心结构,它表示一个表格。 Sheet接口扩展了java.lang.Iterable。
- Row: 它代表工作表中的行。行接口扩展了java.lang.Iterable。有两个具体的类:HSSFRow和XSSFRow。
- Cell: 它是电子表格中某一行的单元格的高级表示。 HSSFCell 和 XSSFCell 实现了 Cell 接口。
类
XLS 类
- HSSFWorkbook: 表示XLS文件,即工作簿
- HSSFSheet: 表示 XLS文件的工作表
- HSSFRow: 表示XLS文件工作表的行
- HSSFCell: 表示XLS文件工作表的单元格
XLSX 类
- XSSFWorkbook: 表示XLSX文件
- XSSFSheet: 表示 XLSX文件的工作表
- XSSFRow: 表示XLSX文件工作表的行
- XSSFCell: 表示XLSX文件工作表的单元格
操作excel文件
0. 添加相关的库
Step 1: 在eclipse中创建一个简单的Java项目。
Step 2: 现在,在项目中创建一个lib文件夹。
Step 3: 下载并在lib文件夹中添加以下jar文件:
- commons-collections4-4.1.jar Click Here
- poi-3.17.jar Click Here
- poi-ooxml-3.17.jar Click Here
- poi-ooxml-schemas-3.17.jar Click Here
- xmlbeans-2.6.0.jar Click Here
Step 4: 设置类的路径。
右键单击项目 ->Properties ->Add External JARs -> 选择所有的jar文件 -> Apply and close.
1. 读取excel文件
Step 1: 创建一个名为 "student.xls "的excel文件,并向其中写入一些数据。
Step 2: 现在创建一个名为ReadExcelFileDemo的类文件,并在该文件中写下以下代码。
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
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;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class ReadExcelFileDemo
{
public static void main(String args[]) throws EncryptedDocumentException, InvalidFormatException, IOException
{
InputStream inp = new FileInputStream("C:\\student.xls");
Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);
//使用for each循环对行进行迭代
for(Row row: sheet)
{
//使用for each循环对单元格进行迭代
for(Cell cell: row)
{
System.out.print(cell.toString()+ "\t\t");
}
System.out.println();
}
}
}
2. 写入excel文件
Step 1: 现在创建一个名为WriteExcelFileDemo的类文件,并在该文件中写下以下代码。
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
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 WriteExcelFileDemo {
public static void main(String[] args) throws FileNotFoundException, IOException {
//创建工作薄
Workbook wb = new HSSFWorkbook();
//创建工作表
Sheet sheet = wb.createSheet("new sheet");
//创建行并在其中放入一些单元格。行从0开始
Row row = sheet.createRow(0);
//创建单元格并在其中放入一个值。
Cell cell = row.createCell(0);
cell.setCellValue(1);
row.createCell(1).setCellValue(1.2);
row.createCell(2).setCellValue("This is a string");
row.createCell(3).setCellValue(true);
//保存
try (OutputStream fileOut = new FileOutputStream("workbook.xls")) {
wb.write(fileOut);
}
System.out.println("存储完成");
}
}