使用POI从URL读取excel文件

时间:2011-05-18 07:03:37

标签: java excel apache-poi

我想在java中使用Apache POI从URL读取excel文件。我使用了这样的代码:

String urlStr = "<url>";
URL url = new URL(urlStr);
URLConnection uc = url.openConnection();
HSSFWorkbook wb = new HSSFWorkbook(uc.getInputStream())

这给了我一个异常:: java.io.IOException: Unable to read entire header; 0 bytes read; expected 512 bytes 知道为什么会这样吗?我在将网址转换为流时做错了吗?

我已经将excel下载到本地磁盘并使用FileInputStream创建了POI对象,它运行正常。因此我认为excel没有问题。读取URL流的代码应该存在一些问题。

2 个答案:

答案 0 :(得分:1)

您应该转到较新版本的POI。较旧版本的POI对输入流上的缓冲比对新缓冲更敏感。我相信3.7应该完全修复。

如果可以,请转到POI 3.8 beta 2或3.7 Final。您可能会发现3.2的改进超过2.5,但它们都是相当旧的版本,因此我无法确定。

如果你必须坚持使用非常旧的版本,你需要自己做一些缓冲。在调用POI之前,请确保至少前4个块(2048个字节)可用。

答案 1 :(得分:0)

尝试使用Google搜索无法读取整个标头; 0字节读取;预计512字节

很多点击提到了POI,其中一个特别提到了阅读旧的Excel(95)文件。试过通过网址打开另一个文件?