一、背景
目前正在做一个问卷功能模块,收集完问卷信息后,需要将数据库中的数据导出到Excel数据表中进行留存,因此就学习了在Java中如何对Excel表进行读写操作。经过了解后选择了 POI 技术,这个 POI项目是Apache(POI官网链接)下面的一个项目,用于处理Excel和Java的数据对接操作。
二、使用方法
2.1 Excel 文档结构:
对于 Excel 我们并不陌生,它是 Microsoft 公司下的一款表格处理软件。一个Excel文件的结构层次是:Excel工作簿(也就是我们说的Excel文件) -> 工作表 -> 单元格(一行一列组成一个单元格)。我们通常使用Excel的步骤,总是 新建一个Excel文件,然后建立一个工作表,然后再向工作表中的单元格写入数据。
2.2 POI对象介绍:
Excel文件的结构层次,对应了POI的几个对象,分别是HSSFWorkbook,HSSFSheet,HSSFRow,HSSFCell。通过这几个对象,我们就可以处理Excel数据了。一般流程是:首先,新建一个HSSFWorkbook,然后建立一个或者多个HSSFSheet,然后再建立一个或者多个HSSFRow,最后建立一个或者多个HSSFCell。
2.3 写入数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| public static void poiWrite() { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("test"); HSSFRow rHssfRow = sheet.createRow(0); HSSFCell cell = rHssfRow.createCell(0); cell.setCellValue("姓名"); FileOutputStream xlsStream = null; try { xlsStream = new FileOutputStream(new File("C:\\Users\\itour\\Desktop\\poiTest.xls")); workbook.write(xlsStream); } catch (IOException e) { e.printStackTrace(); }finally { if (xlsStream != null) { try { xlsStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }
|
2.4 读取数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| public static void poiRead() { FileInputStream xlsStream = null; try { xlsStream = new FileInputStream(new File("C:\\Users\\itour\\Desktop\\poiTest.xls")); HSSFWorkbook hssfWorkbook = new HSSFWorkbook(xlsStream); HSSFSheet sheetAt = hssfWorkbook.getSheetAt(0); HSSFRow row = sheetAt.getRow(0); HSSFCell cell = row.getCell(0); String cellValue = cell.getStringCellValue(); System.out.println("获取到的数据是:" + cellValue); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { if (xlsStream != null) { try { xlsStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }
|
结果如下图:
三、说明
1,上面只是一个最简单的案例,如果想要了解进一步的操作,可以查看官方文档。
2,POI 可以对 Excel 数据进行基本的格式美化,例如 我们可以设置标题和单元格等的格式样式 ,以满足我们的需求。