java 高分求助 用jxl读写Excel的问题,急急急急急急急~~~~~~

我用jxl读写Excel文件,读的时候没有任何问题,写的时候出了问题,简单代码如下:

try {
File file = new File("", name + ".xls");//路径是当前路径,name是文件的名字
if (!file.exists()) {//如果不存在就创建文件
file.createNewFile();
}

Workbook wb = Workbook.getWorkbook(new File(file.getPath()));//***********
WritableWorkbook wwb = Workbook.createWorkbook(new File(file.getPath()), wb);
int c = wwb.getworkbook().getNumberOfSheets() - 1; //最后一张sheet表
........//写数据

wwb.write();

wwb.close();
wb.close();
} catch (Exception ex) {
ex.printStackTrace();
System.out.println(ex.toString());
}

这个是多次执行的,前提是当前路径下存在这个Excel表,执行第一次没有任何问题,第二次的时候就报错了,错误如下:

jxl.read.biff.BiffException: The input file was not found
jxl.read.biff.BiffException: The input file was not found
at jxl.read.biff.File.<init>(File.java:124)
at jxl.Workbook.getWorkbook(Workbook.java:210)
at jxl.Workbook.getWorkbook(Workbook.java:187)
at wordscreat.ExcelWriter.<init>(ExcelWriter.java:51java.lang.NullPointerException

这个错误出现在上述程序的*******行中,我的预期结果是将数据追加写入file这个Excel文件中,但是写入却失败了。

在file文件在30M以下时似乎没出现任何bug,但是到了30M以后追加写入时就出现这个问题了,Excel的行数为3万8千行,列数为14列。

我在网上查,有人说是jxl版本问题,说2.5版本就会出现这个问题,2.0就没事,我也不知道我的jxl是什么版本的,也不知道他说的对不对,因为我在网上找不到2.0的版本。

希望高手们帮我看看,如果问题解决了追加100分,谢谢大家了!

你是想往excel中追加数据吗?
我试一下。

另外,我觉得主要的原因是
at wordscreat.ExcelWriter.<init>(ExcelWriter.java:51java.lang.NullPointerException

你有那一个对象没有控制好,出现了空指针。追问

空指针的原因就是jxl.read.biff.BiffException: The input file was not found导致后面的错误,但是奇怪的是excel表在30M之前什么事都没有,也没报错,超过30M之后就不行了。。

追答

那会不会是你超过了行数?
3万8千行

两次就是
76000
一个sheet页
最多就65536行,最多是255列

追问

不是 不是一次写入3万8千,是每次写入100行,超过4万行jxl就控制不了了。

追答

用POI试过吗?

追问

pol肯定更不行了,因为pol是读比写强,jxl是写比读强。
这个问题我已经解决了,将数据写成txt格式,txt格式基本上是可以无限写的,然后再转换成excel2007版本,可以容纳100万行。
还是谢谢你的回答!

追答

这样也行?
呵呵,学了一招,2007没怎么用过,2003,我看也就65536行,
真不知道2007可以容纳100万行。

温馨提示:答案为网友推荐,仅供参考
相似回答