我在eclipse里添加了jxl包到classpath下,
编写了如下代码来进行读取excel中存储的矩阵数据的功能:
[code]
package a;
import jxl.*;
import java.io.*;
public class exceldatainput3 
{
public static void main(String[] args) 
{
            jxl.Workbook rwb = null;
    try
    {
      InputStream is = new FileInputStream("F:/1.xls");
         rwb = Workbook.getWorkbook(is);
         Sheet rs = rwb.getSheet(0);
         int rsColumns = rs.getColumns();
         int rsRows = rs.getRows();
         for(int i=0;i<rsRows;i++)
         {
             for(int j=0;j<rsColumns;j++)
             {
               Cell cell = rs.getCell(j,i);
               System.out.print(cell.getContents()+" ");
             }
             System.out.println();
         }
     }
    catch(Exception e)
      {
        e.printStackTrace();
      }
    finally
    {
       rwb.close();
    }
}
}
结果运行报错,好多呀:
         jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:268)
at jxl.Workbook.getWorkbook(Workbook.java:253)
at a.exceldatainput3.main(exceldatainput3.java:14)
        Exception in thread "main" java.lang.NullPointerException
at a.exceldatainput3.main(exceldatainput3.java:35)
我不是计算机专业的,所以编程比较菜,希望高手们能指点小弟一下,谢谢大家了

解决方案 »

  1.   

    你的代码没有问题
    你在你自己新建的工程下 如abc 下建立个lib 文家夹 把 jxl.jar 
    放进去
    然后在右击 eclipse 里的该工程 鼠标放在 Build Path上,然后点击 Add External Archives选取刚才的abc下的 jxl.jar 就可以了
      

  2.   

    创建InputStream换成创建File对象了。还是那些错
    然后新建lib,把jxl.jar   add external archive也还是运行不了,
    我在想,这个报错 jxl.read.biff.BiffException: Unable to recognize OLE stream 
    是不是意味着程序根本识别不了微软格式文件的流?
      

  3.   

    我以前是用这种办法添加jxl类库的:在Eclipse里点项目,右键菜单=>属性=> 在属性设置里选java构建路径=>第3项,“库”=> 添加外部JAR=>然后把jxl的JAR包加上,不知道这样对吗?两位前辈
      

  4.   

    InputStream is = new FileInputStream("F:/1.xls"); 
    改成File is = new File("F:/1.xls"); 
    我这边运行是可以的
      

  5.   

    在我这也 没有问题,你用debug as 运行看在哪行出的异常.
      

  6.   

    "创建InputStream换成创建File对象了。还是那些错 
    然后新建lib,把jxl.jar   add external archive也还是运行不了,"是这样的新建lib 把jxl 考进去,然后在add external archive 路径指向的新建lib 里的jxl  是这样弄的吗?
    对象还用原来的
      

  7.   

    是按照你说的把新lib里的那个jxl添加进去了,还是那些错误,
    如果说在你们自己机子上运行没有问题的话,那就只能说明
    是我自己的机子设置出了问题?还是eclipse出了问题?还是说
    jxl那个jar包添加的不对?还是因为我用的是excel2003?
    我也想不出还有什么原因了。呵呵,我头好大呀。
      

  8.   

    我也遇到了同样的问题是你的excel版本太高了 你把文件保存成excel 97-2003
      

  9.   

    is改为File类对象就可以了。另外,好像读取excel文件存在一个致命的问题。如果你的excel太大,记录太多的话比如excel文件有10M以上,就会出一些问题?不知有否办法解决。
      

  10.   

    我跟你同样的问题,现在终于解决了! 
    实践证明是excel的版本问题 打开文本另存为Excel 97-2003 工作簿(*.xls)
    就可以读取了
      

  11.   

    InputStream is = new FileInputStream("F:/1.xls");  
    改成File is = new File("F://1.xls");