论坛首页 Java企业应用论坛

使用jxl对excel文件进行读写操作

浏览 4853 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-01-23  
    今天随便搜了一篇关于使用Java针对excel操作的文章,使用了jxl.jar来进行excel的读写操作,具体的API没有详细看,等到用的时候再去仔细研究,下面的程序是简单的,针对excel的内容读取,创建一个新的excel表格的程序,可以借鉴引用,并根据API参照深入学习。
    使用Javaeye的代码编辑器显示出来问题很大,没办法,只能这么帖出来代码了。
======================================================================
/**读取Excel文件的内容  
* @param file  待读取的文件  
* @return  
*/  
public static String readExcel(File file){

    StringBuffer sb = new StringBuffer();  
    int rowNum = 0;
    String cellValue = "";
       
    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++)
        {
            //得到当前工作表的行数  
            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++){
            cellValue = cells[k].getContents();
            sb.append(cellValue + "\t");
            }
            }
            sb.append("\r\n");
            }
            sb.append("\r\n");
        }
    }
    //最后关闭资源,释放内存   
    wb.close();   
    return sb.toString();   
}  


/**生成一个Excel文件  
     * @param fileName  要生成的Excel文件名  
     */  
    public static void writeExcel(String fileName){   
        WritableWorkbook wwb = null;   
        try {   
            //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象   
            wwb = Workbook.createWorkbook(new File(fileName));   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
        if(wwb!=null){   
            //创建一个可写入的工作表   
            //Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置   
            WritableSheet ws = wwb.createSheet("sheet1", 0);   
               
            //下面开始添加单元格   
            for(int i=0;i<10;i++){   
                for(int j=0;j<5;j++){   
                    //这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行   
                    Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");   
                    labelC.setString("nihao");
                    try {   
                        //将生成的单元格添加到工作表中   
                        ws.addCell(labelC);   
                    } catch (RowsExceededException e) {   
                        e.printStackTrace();   
                    } catch (WriteException e) {   
                        e.printStackTrace();   
                    }   
  
                }   
            }   
  
            try {   
                //从内存中写入文件中   
                wwb.write();   
                //关闭资源,释放内存   
                wwb.close();   
            } catch (IOException e) {   
                e.printStackTrace();   
            } catch (WriteException e) {   
                e.printStackTrace();   
            }   
        }   
    }   
   发表时间:2008-01-23  
不知道对于office2003和office2007支不支持?
0 请登录后投票
   发表时间:2008-01-24  
jxl对多语言支持不是很好,建议用poi
0 请登录后投票
   发表时间:2008-01-31  
    谢谢,有空去研究一下POI的用法,office2003支持的,但是2007我也没有尝试过,我估计问题不大,有机会一起探讨探讨~
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics