Maven项目Apache POI实现Excel导入导出功能
Maven 项目的 Excel 导入导出功能,蛮适合用 Apache POI 来搞。Excel 文件,在多后台系统里都挺常见,像批量上传用户信息、生成报表这些场景。这个 demo 手把手教你用 POI 怎么读、怎么写,代码也不复杂,适合上手练练手。
Excel 的导入流程其实蛮直观的,先拿到Workbook
对象,再通过Sheet
、Row
和Cell
逐步定位到你想要的数据。比如要读取第一行第一列的内容:
FileInputStream fis = new FileInputStream("path_to_your_excel_file.xlsx");
Workbook workbook = WorkbookFactory.create(fis);
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
Cell cell = row.getCell(0);
String data = cell.getStringCellValue();
fis.close();
读取完数据要记得关闭流,POI 对资源管理还是蛮敏感的。
导出 Excel也是类似思路,就是反过来:你先建个Workbook
,一层层加Sheet
、Row
、Cell
,用write()
方法输出文件。代码写得清楚点,看起来也不费劲:
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Data Sheet");
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("Column 1");
headerRow.createCell(1).setCellValue("Column 2");
Row dataRow = sheet.createRow(1);
dataRow.createCell(0).setCellValue("Value 1");
dataRow.createCell(1).setCellValue("Value 2");
try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
} finally {
workbook.close();
}
哦对了,如果你数据量大,记得用SXSSFWorkbook
,它是 POI 专门搞流式写入的类,内存占用少,不容易 OOM。
,这套 demo 比较适合新手练习,结构清晰,功能实用。你可以在这个基础上加点错误、格式控制啥的,慢慢往真实项目靠。
想深入点的,可以看看这些相关资源:
下载地址
用户评论