在 Java 中,你可以使用多种方式进行 Excel 的导入和导出操作。以下是一些常见的实现方式,包括使用 Apache POI 和 EasyExcel 这两个常用的 Java 第三方库。我将为每种方式提供步骤流程和相应的示例代码。
Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 格式的文档,包括 Excel。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelPOIExample {
public static void main(String[] args) throws IOException {
// 创建工作簿和工作表
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
// 创建行和单元格
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Hello, Excel!");
// 导出数据到Excel文件
try (FileOutputStream outputStream = new FileOutputStream("example.xlsx")) {
workbook.write(outputStream);
}
// 从Excel文件导入数据
Workbook importedWorkbook = WorkbookFactory.create(new FileInputStream("example.xlsx"));
Sheet importedSheet = importedWorkbook.getSheetAt(0);
Row importedRow = importedSheet.getRow(0);
Cell importedCell = importedRow.getCell(0);
String importedValue = importedCell.getStringCellValue();
System.out.println("Imported value: " + importedValue);
}
}
EasyExcel 是一个基于注解的 Excel 读写库,具有较为简单的 API 和高性能。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.4.0</version>
</dependency>
import com.alibaba.excel.EasyExcel;
import java.util.ArrayList;
import java.util.List;
public class ExcelEasyExcelExample {
public static void main(String[] args) {
// 导出数据到Excel文件
List<User> userList = new ArrayList<>();
userList.add(new User("Alice", 25));
userList.add(new User("Bob", 30));
String fileName = "userList.xlsx";
EasyExcel.write(fileName, User.class).sheet("Sheet1").doWrite(userList);
// 从Excel文件导入数据
EasyExcel.read(fileName, User.class, new UserListener()).sheet().doRead();
}
}
class User {
private String name;
private int age;
// Constructors, getters, setters
}
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
public class UserListener extends AnalysisEventListener<User> {
private List<User> userList = new ArrayList<>();
@Override
public void invoke(User user, AnalysisContext analysisContext) {
userList.add(user);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
// 处理解析后的用户数据
for (User user : userList) {
System.out.println("Name: " + user.getName() + ", Age: " + user.getAge());
}
}
}
以上是使用 Apache POI 和 EasyExcel 两种方式进行 Excel 导入导出的示例代码和步骤流程。你可以根据自己的需求选择其中之一来实现 Excel 数据的导入和导出功能。