【发布时间】:2012-04-10 19:02:59
【问题描述】:
我有一些来自 JQGrid 的数据应该导出到 excel 中。因此,我们编写了一个 java servlet 来将数据写入 excel 并将其发送回。在客户端,我们通过发送 JSON 数据来使用 AJAX JSONP 请求。我能够点击 servlet 和 servlet 将创建的 excel 发送回客户端。但我无法从客户端看到 excel 或任何类型的输出。
当我使用 Fiddler 并观察 http 调用时,我发现应用程序收到了结果。但它仍然没有显示结果。
这是我收到的结果标题。
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Disposition: attachment; filename=PistonData.xls
Content-Type: application/vnd.ms-excel
Content-Length: 6144
Date: Tue, 27 Mar 2012 08:49:04 GMT
如何使用 JQuery 将此结果作为 Excel 打开?有人可以建议我解决此问题的方法吗?
更新 #1 忘记包含请求
$.ajax({
type: "POST",
dataType: "jsonp",
contentType:'application/vnd.ms-excel',
url: "http://devmachine:9010/axis/SPSServlet",
data: param,
success: function (dataToSend) {
alert(dataToSend);
}
});
更新 #2 根据 Oleg 的建议,我为这个问题找到了解决方案。
这是我的代码:
<form id="frmExcelExport" style="display:none;">
<input type=hidden id="partId" name="partId" />
<input type=hidden id="columnNames" name="columnNames" />
<input type=hidden id="data" name="data" />
</form>
$('#columnNames').val(colModStr);
$('#partId').val(currentPartID);
$('#data').val(dataStr);
var urlForExport = "http://devmachine:9010/axis/SPSServlet";
$('#frmExcelExport').attr("method", "post");
$('#frmExcelExport').attr("action", urlForExport);
$('#frmExcelExport').submit();
而且效果很好。 非常感谢奥列格!!!!
【问题讨论】:
标签: jquery servlets jqgrid jsonp export-to-excel