小编典典

使用jQuery使用AJAX发送Excel数据

ajax

我具有以下从数据库中提取数据的功能。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文件。没有页面重定向。是阿贾克斯吗?不,但是它解决了我遇到的真正问题。

这是单击按钮时要调用的函数:

     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;;
     }

阅读 365

收藏
2020-07-26

共1个答案

小编典典

AJAX是…错误的选择。将用户重定向到服务器资源,该服务器资源将使用正确的MIME类型向下发送数据,然后让浏览器确定如何处理它。

2020-07-26