使用jQuery使用Ajax发送Excel数据?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (265)

有以下功能,即从数据库中提取数据。Ajax调用工作正常。如何将成功函数中以制表符分隔的数据发送给用户?将contect类型设置为“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。

下面是我在单击按钮时调用的函数:

     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;;
     }
提问于
用户回答回答于

由于它使用JavaScript,Ajax受到JavaScript设计的限制的约束,包括与客户端机器上的其他进程交互。在本例中,这是一件好事;您不希望站点自动加载包含恶意宏的Excel文档。

如果想在浏览器中显示数据,可以使用Ajax;否则,您将只需要提供一个指向Excel文档的链接,并让浏览器的常规下载处理功能确定该做什么。

用户回答回答于

在HTML中,我有一个带有串行输入元素的表单和一个调用JavaScript函数的按钮onclick="exportExcel();

然后在JavaScript文件中:

function exportExcel(){
    var inputs = $("#myForm").serialize();
    var url = '/ajaxresponse.php?select=exportExcel&'+inputs;
    location.href = url;
}

最后是一个对某事作出反应的枢轴文件

PHP代码:

case 'exportExcel':{
                     ob_end_clean();
                     header("Content-type: application/vnd.ms-excel");
                     header("Content-Disposition: attachment;
                     filename=exportFile.xls");
                     echo $html->List($bd->ResultSet($_GET));
                }

$html是处理html的对象,$BD是从DatabaseSend您自己的html表或任何您想要的东西返回数据的对象。

扫码关注云+社区

领取腾讯云代金券