import java.io.FileInputStream;
import java.io.InputStream;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;public class TestExcel {
    public static void readExcel(String sourcefile){
        try
        {
        InputStream is = new FileInputStream(sourcefile);
        jxl.Workbook rwb = Workbook.getWorkbook(is);
        Sheet rs = rwb.getSheet(0);  //执行到这就报错,sheet0是有内容的
        }catch (Exception e)
        {
        e.printStackTrace();
        }
    }
    public static void main(String[] args){
        TestExcel.readExcel("D:\\d.xls");
    }
}这个代码应该是没问题的,但是有这样奇怪的问题,有一种excel表读不了,报错: 
java.lang.ArrayIndexOutOfBoundsException: 1 
at jxl.read.biff.SheetImpl.getCell(SheetImpl.java:354) 
at TestExcel.readExcel(TestExcel.java:14) 
at TestExcel.main(TestExcel.java:23) 
但是我在这个表中任意cell里面写一个值就可以了,我再把这个值删了,也可以读取,这是 什么原因呢??? 
后来 我又尝试让它读一个新建立新的空表,也是同样的报错,再用相同的办法,增加一个cell值,又可以读了,再删除这个cell值,也可以读。 
(我用的是2.6版本的java excel api) 后来我又用poi也会报错。
我的那些excel是中国移动给我的,也是他们的程序生成的,我用excel2003打开这些excel文件,什么也不操作,直接保存。发现这些excel文件会大2k,这时执行上面的程序就不会报错,总之就是很奇怪的问题,现在我怀疑是不是那些文件本身的问题啊???(不好意思没分给了)