使用POI实现Java读写Excel文件
2015-01-16 17:35
309 查看
Apache POI提供了强大的操作Microsoft Office文档的功能。在实际工作中,常常使用Excel文件来存储数据。利用POI,可以方便地对Excel文档进行读写,进而实现对数据的处理与存储。本文将介绍使用POI实现对Excel文件的基本读写功能。POI对Excel的工具包可以在http://poi.apache.org/download.html下载。POI对Excel的处理分为两类:HSSF和XSSF,前者用于处理97-03版的Excel文件(.xls),XSSF用于处理07版的Excel文件。
首先是写入功能,生成的目标文件如下:
文本的内容很简单,创建一个“数学成绩”表,然后录入两位同学的成绩。实现方法如下:
这样就实现了写入功能。这里的数据非常简单,如果是大量录入,可以通过循环等方式减少代码的重复量。如果还需要录入"英语成绩",只需要创建对应的表wb.createSheet("英语成绩")并写入数据即可。
Excel文件内容的读取同样简单,找到对应的sheet,然后定位到目标cell即可。需要注意的是,读取Cell内容前需要对Cell中的内容的类型进行判断,也就是说,需要提前检查该数据是字符串、数字、日期等,如果不做检查,则可能在读取的过程中发生错误。下面的代码实现了对上面创建的文件内容的读取。
除了基本的读写功能,POI还提供了一系列操作Excel文件的功能,例如字体、背景、表格大小的控制和自适应等等,后面再做进一步的介绍。
首先是写入功能,生成的目标文件如下:
文本的内容很简单,创建一个“数学成绩”表,然后录入两位同学的成绩。实现方法如下:
public void write() throws IOException { Workbook wb = new HSSFWorkbook(); //创建工作簿 Sheet sheet = wb.createSheet("数学成绩"); //创建sheet Row row = sheet.createRow(0); //创建第一行 Cell cell11 = row.createCell(0); //第一行第一列 cell11.setCellValue("小明"); //写入值:小明 Cell cell12 = row.createCell(1); //第一行第二列 cell12.setCellValue(90); //写入值:90 Row row2 = sheet.createRow(1); //创建第二行 Cell cell21 = row2.createCell(0); //第二行第一列 cell21.setCellValue("小华"); //写入值:小华 Cell cell22 = row2.createCell(1); //第二行第二列 cell22.setCellValue(80); //写入值:80 FileOutputStream fileOut = new FileOutputStream("d:/test.xls"); wb.write(fileOut); fileOut.close(); }
这样就实现了写入功能。这里的数据非常简单,如果是大量录入,可以通过循环等方式减少代码的重复量。如果还需要录入"英语成绩",只需要创建对应的表wb.createSheet("英语成绩")并写入数据即可。
Excel文件内容的读取同样简单,找到对应的sheet,然后定位到目标cell即可。需要注意的是,读取Cell内容前需要对Cell中的内容的类型进行判断,也就是说,需要提前检查该数据是字符串、数字、日期等,如果不做检查,则可能在读取的过程中发生错误。下面的代码实现了对上面创建的文件内容的读取。
public void read() throws IOException { InputStream inp = new FileInputStream("d:/test.xls"); HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(inp)); Sheet sheet = wb.getSheet("数学成绩"); for (Row row : sheet) { for (Cell cell : row) { CellReference cellRef = new CellReference(row.getRowNum(),cell.getColumnIndex()); System.out.print(cellRef.formatAsString()); System.out.print(" - "); switch (cell.getCellType()) { case Cell.CELL_TYPE_STRING: System.out.println(cell.getRichStringCellValue().getString()); break; case Cell.CELL_TYPE_NUMERIC: if (DateUtil.isCellDateFormatted(cell)) { System.out.println(cell.getDateCellValue()); } else { System.out.println(cell.getNumericCellValue()); } break; case Cell.CELL_TYPE_BOOLEAN: System.out.println(cell.getBooleanCellValue()); break; case Cell.CELL_TYPE_FORMULA: System.out.println(cell.getCellFormula()); break; default: System.out.println(); } } } }
除了基本的读写功能,POI还提供了一系列操作Excel文件的功能,例如字体、背景、表格大小的控制和自适应等等,后面再做进一步的介绍。
相关文章推荐
- 使用Poi实现Java读写Excel (一)
- java使用POI实现excel文件的读取,兼容后缀名xls和xlsx
- java 使用POI读写Excel文件(兼容2003、2007)
- java使用POI操作excel文件,实现批量导出,和导入
- java使用POI实现Excel文件的读取
- java使用poi实现excel解析
- 使用POI读写Excel文件
- java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- 使用Java实现对dbf文件的简单读写
- Java使用jxl.jar包写Excel文件的最适合列宽问题基本实现
- java操作excel文件(使用poi)
- 使用poi读写excel文件
- Java通过POI读写Excel文件
- Java使用POI实现数据导出excel报表
- Java使用jxl包写Excel文件适合列宽实现
- Java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- JAVA使用POI读取EXCEL文件的简单model
- 在B/S模式下使用java代理导入excel文件的实现方法及代码
- 使用Java实现对dbf文件的简单读写
- 使用java excel api 简单读写excel文件