java操作excel的开源包目前的pos,jxl,fastexcel,当然还有其他的,还请大家多指教.部分代码是摘自网络上的,如有冒犯,肯请见谅.
1.poi读取Excel
// 构造 HSSFWorkbook 对象,strPath 传入文件路径 HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(strPath)); // 读取文件中的第一张表格 HSSFSheet sheet = wb.getSheetAt(0); // 定义 row、cell HSSFRow row; // HSSFCell cell; String cell; // 循环输出表格中的内容 for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++) { row = sheet.getRow(i); for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++) { cell = row.getCell(j).toString(); System.out.print(cell + "\t"); } System.out.println(""); }
2、fastexcel读Excel
// 打开表格文件,strPath设置文件所在路径 Workbook workBook = FastExcel.createReadableWorkbook(new File(strPath)); workBook.open(); // 操作第一张表格 Sheet s = workBook.getSheet(0); // 设置 row、cell String[] row; String cell; // 循环输出表格内容 for (int i = s.getFirstRow(); i < s.getLastRow(); i++) { row = s.getRow(i); for (int j = s.getFirstColumn(); j < s.getLastColumn(); j++) { cell = s.getCell(i, j); System.out.print(cell + "\t"); } System.out.println(""); } // 关闭连接 workBook.close();
3.jxl读取excel
/**读取Excel文件的内容 * @param file 待读取的文件 * @return */ public static String readExcel(File file) { StringBuffer sb = new StringBuffer(); Workbook wb = null; try { //构造Workbook对象 wb = Workbook.getWorkbook(file); } catch (BiffException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if (wb == null) { return null; } //获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了 Sheet[] sheet = wb.getSheets(); if (sheet != null && sheet.length > 0) { //对每个工作表进行循环 for (int i = 0; i < sheet.length; i++) { //得到当前工作表的行数 int rowNum = sheet[i].getRows(); for (int j = 0; j < rowNum; j++) { //得到当前行的所有单元格 Cell[] cells = sheet[i].getRow(j); if (cells != null && cells.length > 0) { //对每个单元格进行循环 for (int k = 0; k < cells.length; k++) { //读取当前单元格的值 String cellValue = cells[k].getContents(); sb.append(cellValue + "\t"); } } sb.append("\r\n"); } sb.append("\r\n"); } } //最后关闭资源,释放内存 wb.close(); return sb.toString(); }
总体来讲pio的功能会比较丰富,相应的它的一些速度会比较慢.但jxl速度会比较快.