我有以下功能,从数据库中提取数据。 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;; }