如何对已有的excel文件,同时进行读写操作。有一个excel的文件,要读取该workbook中指定sheet中的信息,并修改该sheet中某些单元格的值。
我写的代码,总是报这个错误 java.lang.ClassCastException: jxl.write.Blank
at dsic.TPB.main(TPB.java:271)   
          
String realpath = "d:/test.xls";
try{
Workbook wb = Workbook.getWorkbook(new File(realpath));
//第二步:通过模板得到一个可写的Workbook:第一个参数是一个输出流对象,第二个参数代表了要读取的模板
ByteArrayOutputStream targetFile = new ByteArrayOutputStream();
WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb);

//第三步:选择模板中名称为StateResult的Sheet:
WritableSheet wws = wwb.getSheet(0);
System.out.println(wws.getCell(1, 1).getContents());

Label A1 = (Label)wws.getWritableCell(2,2);
A1.setString("单元格内容");

Number A2 = (Number)wws.getWritableCell(1,1);//Number是jxl.write.Number
A2.setValue(3.3); wwb.close();
wb.close();

}catch(Exception e){
e.printStackTrace();
}

解决方案 »

  1.   

    通过jxl不创建新的sheet,只在原先的sheet上为某些单元格赋值,如何实现,请贴代码帮忙,‘
    Label A1 = (Label)wws.getWritableCell(2,2); 
    A1.setString("单元格内容"); 
    总是报这个错误 java.lang.ClassCastException: jxl.write.Blank 
      

  2.   

    解决了,贴出来public static void main(String[] args) {
        //选择模板文件:
        String realpath = "d:/test.xls";
        try{
    Workbook wb = Workbook.getWorkbook(new File(realpath));
    //第二步:通过模板得到一个可写的Workbook:第一个参数是一个输出流对象,第二个参数代表了要读取的模板
    File targetFile = new File("d:/test.xls");
    WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb);

    WritableSheet wws = wwb.getSheet(0);
    System.out.println(wws.getCell(1, 1).getContents());
    //如果需要也可以创建Sheet
    //WritableSheet wws = wwb.createSheet("Sheet名称",1);
    WritableCell wc = wws.getWritableCell(0, 0);
    if(wc.getType() == CellType.LABEL)
    {
        l l = (Label)wc;
        l.setString("Modified.");
    }
    wwb.write();
    wwb.close();
    wb.close();
        }catch(Exception e){
    e.printStackTrace();
        }
    }
      

  3.   

    一般来说 都是代码取的值的类型和excel单元格里面的数据类型不一样造成的 
    我前段时间做过这个