Java HttpResponse 包含 Excel 文件,内容中包含 Javascript
Java HttpResponse Contains Excel File with Javascript in Contents
我正在从站点下载 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); });
我想这是内容的一部分,旨在在浏览器中弹出文件对话框。
我可以只从 HttpResponse(Apache)
中获取附件数据吗?如果没有,我有什么选择可以删除它? POI
?或者有更简单的方法吗?
发生这种情况是因为响应消息内容是 HTML table 而不是 excel 文件。上面显示的 javascript 是 html 的合法部分,因此当 Excel 试图将 HTML table 转换为 Excel 电子表格时,它在最后一行粘贴了上面的 javascript 。
修复方法是使用 Jsoup 将 HTML table 解析为 csv。
我正在从站点下载 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); });
我想这是内容的一部分,旨在在浏览器中弹出文件对话框。
我可以只从 HttpResponse(Apache)
中获取附件数据吗?如果没有,我有什么选择可以删除它? POI
?或者有更简单的方法吗?
发生这种情况是因为响应消息内容是 HTML table 而不是 excel 文件。上面显示的 javascript 是 html 的合法部分,因此当 Excel 试图将 HTML table 转换为 Excel 电子表格时,它在最后一行粘贴了上面的 javascript 。
修复方法是使用 Jsoup 将 HTML table 解析为 csv。