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。