Java HttpResponse包含内容为Javascript的Excel文件

我正在从一个网站下载一个excel文件,发布生成文件内容所需的数据后,我这样做。

CloseableHttpResponse excelResponse = httpClient.execute(post); InputStream in = excelResponse.getEntity().getContent(); File excel = new File("/myfiles/report.xls"); OutputStream out = new FileOutputStream(excel); try { IOUtils.copy(in, out); } finally { in.close(); } 

问题是,当我这样做时,excel文件包含最后一行:

 $(window).ready(function() { runShowNotificationPopup(6); }); 

我想这是内容的一部分,是为了在浏览器中popup文件对话框。 我能从HttpResponse(Apache)获得附件数据吗? 如果没有,我的select是什么去除这个? POI ? 还是有一些更简单的方法?

发生这种情况是因为响应消息内容是HTML表格而不是Excel文件。 上面显示的JavaScript是该html的合法部分,所以当Excel试图将HTML表格转换为Excel电子表格时,它在最后一行粘贴了上面的JavaScript。

解决方法是使用Jsoup将HTML表格parsing为csv。