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 比较适合新手练习,结构清晰,功能实用。你可以在这个基础上加点错误、格式控制啥的,慢慢往真实项目靠。
想深入点的,可以看看这些相关资源: