我有以下功能,从数据库中提取数据。 ajax调用正常工作。如何将我的成功函数中的制表符分隔数据发送给用户?将对话类型设置为“application / vnd.ms-excel”无效。成功的警报显示格式正确的数据。
function SendToExcel() {
$.ajax({
type: "GET",url: "/Search.aspx",contentType: "application/vnd.ms-excel",dataType: "text",data: "{id: '" + "asdf" + "'}",success: function(data) {
alert(data);
},error: function (jqXHR,textStatus,errorThrown) {
alert(jqXHR.responseText);
}});
}
我不想在浏览器中显示数据 – 我想将其发送到Excel。
编辑:我找到了一种方式来做我想要的。而不是将用户重定向到一个新的页面,将提示他们保存/打开一个Excel文件,我打开了一个隐藏的iframe内的页面。这样,用户单击一个按钮,并提示他们保存/打开一个Excel文件。无页面重定向。是Ajax吗?不,但它解决了我有的真正的问题。
这里是我点击按钮的功能:
function SendToExcel() {
var dataString = 'type=excel' +
'&Number=' + $('#txtNumber').val() +
'&Reference=' + $('#txtReference').val()
$("#sltCTPick option").each(function (i) {
dataString = dataString + '&Columns=' + this.value;
});
top.iExcelHelper.location.href = "/Reports/JobSearchResults.aspx?" + dataString;;
}