用POI解析EXCEL文件报错,高人指点.

swanmarx 2007-08-04 10:08:55
HSSFWorkbook workbook = null;
try
{
workbook = new HSSFWorkbook(new FileInputStream("c:\\12.xls"));
}
catch (IOException e)
{
e.printStackTrace();
}
.....
执行下面一句时
workbook = new HSSFWorkbook(new FileInputStream("c:\\12.xls"));
抛出异常:

java.io.IOException: Invalid header signature; read -1964499853149091405, expected -2226271756974174256

at org.apache.poi.poifs.storage.HeaderBlockReader.<init>(HeaderBlockReader.java:100)

at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:84)

at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:257)

at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:238)

at com.swan.stock.StockService.parseExcelFile(StockService.java:37)

at com.swan.stock.StockMainFrameActionAdapter.fileSelect_actionPerformed(StockMainFrameActionAdapter.java:52)

at com.swan.stock.StockMainFrameActionAdapter.actionPerformed(StockMainFrameActionAdapter.java:33)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)

at java.awt.Component.processMouseEvent(Component.java:5100)

at java.awt.Component.processEvent(Component.java:4897)

at java.awt.Container.processEvent(Container.java:1569)

at java.awt.Component.dispatchEventImpl(Component.java:3615)

at java.awt.Container.dispatchEventImpl(Container.java:1627)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

at java.awt.Container.dispatchEventImpl(Container.java:1613)

at java.awt.Window.dispatchEventImpl(Window.java:1606)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

java.lang.Exception: 传入的文件不对

at com.swan.stock.StockService.parseExcelFile(StockService.java:43)

at com.swan.stock.StockMainFrameActionAdapter.fileSelect_actionPerformed(StockMainFrameActionAdapter.java:52)

at com.swan.stock.StockMainFrameActionAdapter.actionPerformed(StockMainFrameActionAdapter.java:33)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)

at java.awt.Component.processMouseEvent(Component.java:5100)

at java.awt.Component.processEvent(Component.java:4897)

at java.awt.Container.processEvent(Container.java:1569)

at java.awt.Component.dispatchEventImpl(Component.java:3615)

at java.awt.Container.dispatchEventImpl(Container.java:1627)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

at java.awt.Container.dispatchEventImpl(Container.java:1613)

at java.awt.Window.dispatchEventImpl(Window.java:1606)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

高人指点,谢谢先!
...全文
723 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
软白沙 2007-11-23
  • 打赏
  • 举报
回复
你看看你的版本,应该是版本问题
liqdok 2007-11-23
  • 打赏
  • 举报
回复
你的excel文件的compound header没办法被poi识别,有很多种可能:
你的excel文件是第三方工具生成的,比如水晶等报表工具;
你的excel文件里面报表了一些特别的control,如按钮、vba等;
你的excel文件版本无法被poi识别,目前poi只是支持excel97-excel2003的biff8格式;
Ji秋风 2007-08-07
  • 打赏
  • 举报
回复
帮你顶,一直使用JXL。
axia6395 2007-08-05
  • 打赏
  • 举报
回复
你excel里面是不是有下拉列表什么的东西啊 我用过jxl对这个不太熟悉 有问题再联系 lws.emmagee@163.com
vitamins 2007-08-05
  • 打赏
  • 举报
回复
帮你顶!!!

62,614

社区成员

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

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