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。