Java Excel简单封装POI实现步骤
1. 导入POI依赖
首先,我们需要在Java项目中导入POI库,以便使用POI提供的API来操作Excel文件。在项目的pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
2. 创建Excel工具类
我们可以创建一个名为ExcelUtils的工具类,用于封装POI操作Excel的方法。可以使用以下代码创建该类:
public class ExcelUtils {
// 在这里实现POI操作Excel的方法
}
3. 实现Excel读操作
为了实现Excel的读取操作,我们可以在ExcelUtils类中添加一个静态方法,例如readExcel(String filePath)
,用于从指定路径的Excel文件中读取数据。可以使用以下代码实现:
public static List<List<String>> readExcel(String filePath) {
List<List<String>> data = new ArrayList<>();
try {
FileInputStream fis = new FileInputStream(filePath);
Workbook workbook = WorkbookFactory.create(fis);
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
List<String> rowData = new ArrayList<>();
for (Cell cell : row) {
rowData.add(cell.toString());
}
data.add(rowData);
}
workbook.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
return data;
}
4. 实现Excel写操作
为了实现Excel的写入操作,我们可以在ExcelUtils类中添加一个静态方法,例如writeExcel(String filePath, List<List<String>> data)
,用于将数据写入到指定路径的Excel文件中。可以使用以下代码实现:
public static void writeExcel(String filePath, List<List<String>> data) {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet();
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);
}
}
try {
FileOutputStream fos = new FileOutputStream(filePath);
workbook.write(fos);
workbook.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
5. 注释解释
在上述代码中,我们使用了一些POI提供的API来实现Excel的读写操作。以下是对部分代码进行的注释解释:
Workbook
:Excel工作簿,表示一个Excel文件。Sheet
:Excel工作表,表示Excel文件中的一个工作表。Row
:Excel行,表示工作表中的一行。Cell
:Excel单元格,表示一个单元格。
在读取Excel时,我们使用FileInputStream
来读取Excel文件的输入流,然后使用WorkbookFactory.create(fis)
来创建Workbook对象。通过workbook.getSheetAt(0)
可以获取到第一个工作表。然后使用两层循环遍历每一行和每一个单元格,并将数据添加到List<List<String>>中。
在写入Excel时,我们使用XSSFWorkbook
来创建Workbook对象,然后使用workbook.createSheet()
来创建工作表。接着使用两层循环遍历数据列表,并将数据写入到单元格中。
6. 使用示例
在使用ExcelUtils工具类时,可以按照以下步骤进行:
public static void main(String[] args) {
// 读取Excel文件
List<List<String>> data = ExcelUtils.readExcel("path/to/excel.xlsx");
// 打印读取的数据
for (List<String> rowData : data) {
for (String cellData : rowData) {
System.out.print(cellData + "\t");
}
System.out.println();
}
// 写入Excel文件
List<List<String>> newData = new ArrayList<>();
newData.add(Arrays.asList("A1", "B1", "C1"));
newData.add(Arrays.asList("A2", "B2", "C2"));
newData.add(Arrays.asList("A3", "B3", "C3"));
ExcelUtils.writeExcel("path/to/new-excel.xlsx", newData);
}
以上就是简单封装POI实现Java Excel操作的基本步骤和代码示例。通过这些代码,你可以在自己的项目中轻