Java读写Excel文件工具类
引言
在日常的开发中,我们经常需要处理Excel文件,包括读取和写入数据。Java提供了一种方便的方式来处理Excel文件,通过Apache POI库可以轻松地读写Excel文件。本文将介绍如何使用Java读写Excel文件的工具类,并提供相应的代码示例。
准备工作
在开始之前,我们需要准备一些工具和环境:
- JDK:确保安装了Java Development Kit (JDK)。
- Apache POI:下载并导入Apache POI库。
工具类设计
在开始编写代码之前,我们需要先设计一个合适的工具类。这个工具类应该包含以下功能:
- 读取Excel文件:从Excel文件中读取数据。
- 写入Excel文件:将数据写入到Excel文件中。
我们可以将这个工具类命名为ExcelUtils。
ExcelUtils类的实现
我们先来实现ExcelUtils类。首先,我们需要导入Apache POI库中相关的类:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
读取Excel文件
接下来,我们可以编写ExcelUtils类的readExcel方法,用于读取Excel文件。readExcel方法需要传入要读取的Excel文件路径,并返回一个包含Excel数据的List对象。
public class ExcelUtils {
public static List<List<String>> readExcel(String filePath) throws IOException {
List<List<String>> data = new ArrayList<>();
FileInputStream fis = new FileInputStream(filePath);
Workbook workbook = new XSSFWorkbook(fis);
Sheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
List<String> rowData = new ArrayList<>();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
rowData.add(cell.toString());
}
data.add(rowData);
}
workbook.close();
fis.close();
return data;
}
}
写入Excel文件
接下来,我们可以编写ExcelUtils类的writeExcel方法,用于将数据写入Excel文件中。writeExcel方法需要传入要写入的Excel文件路径和要写入的数据,并将数据写入到Excel文件中。
public class ExcelUtils {
// ...
public static void writeExcel(String filePath, List<List<String>> data) throws IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
int rowNum = 0;
for (List<String> rowData : data) {
Row row = sheet.createRow(rowNum++);
int cellNum = 0;
for (String cellData : rowData) {
Cell cell = row.createCell(cellNum++);
cell.setCellValue(cellData);
}
}
FileOutputStream fos = new FileOutputStream(filePath);
workbook.write(fos);
workbook.close();
fos.close();
}
}
使用示例
现在我们可以使用ExcelUtils类来读写Excel文件。以下是一些使用示例:
读取Excel文件
public class Main {
public static void main(String[] args) {
try {
List<List<String>> data = ExcelUtils.readExcel("data.xlsx");
for (List<String> rowData : data) {
for (String cellData : rowData) {
System.out.print(cellData + "\t");
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
写入Excel文件
public class Main {
public static void main(String[] args) {
try {
List<List<String>> data = new ArrayList<>();
List<String> rowData1 = new ArrayList<>();
rowData1.add("John");
rowData1.add("Doe");
data.add(rowData1);
List<String> rowData2 = new ArrayList<>();
rowData2.add("Jane");
rowData2.add("Smith");
data.add(rowData2);
ExcelUtils.writeExcel("data.xlsx", data);
} catch (IOException e) {
e.printStackTrace();
}
}
}
总结
通过Apache POI库,我们可以轻松地读写Excel文件。本文介绍了如何使用Java读写Excel文件的工具类,并提供了相应的代码示例。希望本文对于学习Excel文件处理有所帮助。