java poi 产生的一个异常,大家帮忙看下

cds1 2007-08-29 10:03:36
java.io.IOException: Invalid header signature; read 7011577315731788834, expecte
d -2226271756974174256
at org.apache.poi.poifs.storage.HeaderBlockReader.<init>(HeaderBlockRead
er.java:100)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSyste
m.java:84)
at yuebao.CallRecord.main(CallRecord.java:18)


...全文
325 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cds1 2007-09-11
  • 打赏
  • 举报
回复
好的,结贴
wunan320 2007-08-29
  • 打赏
  • 举报
回复
在public POIFSFileSystem(InputStream inputstream){}内部
HeaderBlockReader headerblockreader = new HeaderBlockReader(inputstream);
HeaderBlockReader里面把流按byte[512]来读,
读完longfield.get()转换了下 然后出来异常信息了
。。。以上属于废话 没有找到原因

建议lz随便新建一个excel文件 读一下看看报错不
我还是怀疑是文件问题
cds1 2007-08-29
  • 打赏
  • 举报
回复
可以打开啊,文档没有问题
就是不明白为读取方件会有异常呢
wunan320 2007-08-29
  • 打赏
  • 举报
回复
不好意思 我回的时候还没看到程序。
应该是CallRecord(Running).xls有问题吧
lz试下直接打开可以么
livan1038 2007-08-29
  • 打赏
  • 举报
回复
不是很明白,帮你顶!
wunan320 2007-08-29
  • 打赏
  • 举报
回复
lz发这些,只能说明错误是:不合法的头名称
其他的。。。期待高人来yy
cds1 2007-08-29
  • 打赏
  • 举报
回复
附上一点程序

package yuebao;

import java.io.*;
import java.text.*;

import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class CallRecord
{
public static void main(String[] args)
{
int b=0;
POIFSFileSystem pfs=null;
HSSFWorkbook hwb=null;
try
{
pfs=new POIFSFileSystem(new FileInputStream("CallRecord(Running).xls"));
hwb=new HSSFWorkbook(pfs);
HSSFSheet sheet=hwb.getSheetAt(0);
int rowNum;
int i;
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
wunan320 2007-08-29
  • 打赏
  • 举报
回复
不是说excel文件里保存的数据丢失。
是excel文件本身损坏了。
既然新建的文件能用就好,没必要在一个损坏的文件上纠缠了。
cds1 2007-08-29
  • 打赏
  • 举报
回复
但是数据还是完整的啊,没有缺
这个excel文件是由另一个文件产生的,不过那个不是我做的,我只是提取了文件
wunan320 2007-08-29
  • 打赏
  • 举报
回复
你的程序可能在别的地方有对excel文件的操作,也许程序有问题导致文件的部分数据损坏。
cds1 2007-08-29
  • 打赏
  • 举报
回复
的确是文件问题,因为我新建了一个文件后,再把原来的内容全部复制过去,然后读取新建的文件,运行后正常
但还是不明白到底是什么原因,因为我把原来内容用ctrl+A全选后复制到另一个excel空文档里,保存后新建的文档的大小是200多K,而原来那个文件却只有90多K,都是相同的内容,行数也一样,我也没做什么改动,麻烦大家给分析分析

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧