java操作excel

 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速度会比较快.

你可能感兴趣的:(java,工作,Excel,J#)