ajax获取数据导出excel表格(表头可自定义)

亲测有用 ajax获取数据渲染到excel表格中,数据表头从另外的接口获取数据 同时渲染到表格中

没多少废话 直接上代码 :

顶部是我 引用的js 也可以重新下载  

大佬们 看到我这个 免费的资源 还不赶紧给我关注 给我赞 

先引入 xlsx.full.min.js

下载源码地址:  小二· / xlsx · GitCode

这是结合我自己代码封装了一下 减少重复代码用的    ;

 保存后excel 名称也是 自定义的 可以自己获取想要名称 进行自定义保存 

注意: 
     我做了判断 如果没有数据就不会执行下载 不然就会报错 比较麻烦 所以就直接做了以为为空判断 

还有 exportExcel 参数 顺序 必须按照这边写顺序的参数进行传值 不然就会报错 这一点 和 Java 不一样


function exportExcel(url ,ERP_show, getTbstru ,header) {

    $.ajax({
        url: url,
        type: "post",
        data: JSON.stringify(ERP_show),
        async: false,
        contentType: "application/json;charset=UTF-8",
        dataType: "json",
        success: function (data) {
            var jsonData  = data.data;
            // console.log(jsonData)
    if (jsonData.length == 0){
        alert("没有数据导出");
            
            return;
        
    }else {

            $.ajax({
                url: header,
                type: "post",
                data: JSON.stringify(getTbstru),
                async: false,
                contentType: "application/json;charset=UTF-8",
                dataType: "json",
                success: function (data) {
                    // console.log(data);
                    var customColumns  = data.data;
                    // console.log(customColumns)
                    var fddesc = [];
                    var fdname = [];
                    for (var i = 0; i < customColumns.length; i++) {
                        fddesc.push(customColumns[i].fddesc);
                        fdname.push(customColumns[i].fdname);
                    }

                    const firstJsonObject = jsonData[0];
                    // console.log(firstJsonObject)
                    const keys = Object.keys(firstJsonObject);
                    // console.log(keys)

                    // 预处理JSON数据以匹配自定义列名
这里因为我是从其他数据取出来 数据是乱的 所以多进行一步进行 匹配列 然后把数据放入对应列 
                    const preprocessedData = jsonData.map(item => {
                        const result = {};
                        // 遍历 fdname 数组
                        customColumns.forEach(field => {
                            // 检查 field.fdname 是否是 item 的一个键

                            const name = field.fdname;
                            const fddesc = field.fddesc;
                            // console.log(name)
                            if (keys.includes(name)) {
                                // 如果存在,使用 field.fddesc 作为新键,item[field.fdname] 作为值
                                result[fddesc] = item[name];
                            }else {
                                // 如果不存在,可以选择设置一个默认值或忽略
                                // 例如,设置为 undefined 或跳过该字段
                                result[fddesc] = undefined;
                            }

                        });

                        return result;
                    });
                    // console.log(preprocessedData)
                    var ws = XLSX.utils.json_to_sheet(preprocessedData);
                    var wb = XLSX.utils.book_new();
                    XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
                    var pageTitle = 'text';
                    // console.log('当前页面名称是:' + pageTitle);
                    XLSX.writeFile(wb, pageTitle+".xlsx");

                }
            })

        }
        }
    })

}

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
网页数据导出Excel表格,是一种非常常见的操作,其可以实现将网页上的数据直接导出Excel表格中,以方便用户对数据进行分析、整理、存档等操作。这种方法比较简单、易用,且涉及到的技术也不算难,基本上所有的网站都可以实现这一功能。下面我们来详细讲述一下该功能的实现过程及其相关技术要点。 首先,网页数据导出Excel表格主要涉及到两方面的技术:一是服务器端与客户端之间的数据传输技术;二是将传输过来的数据处理成Excel格式的技术。 在客户端点击导出按钮后,会向服务器发起一个数据请求,服务器端会将需要导出的数据从数据库或其他数据源中查询出来,并通过一定的数据传输技术将数据传输给客户端。常用的数据传输协议有两种:一种是XMLHttpRequest(即AJAX)协议,它可以通过JavaScript代码实现异步传输数据,不需要页面的刷新或跳转,很适合于提高用户体验;另一种是常见的HTTP请求,它是一种同步的数据传输方式,需要通过页面的刷新或跳转来实现数据的传输,但它的编写和调试比异步传输方式简单许多。 在数据传输完成后,服务器端需要将传输过来的数据使用一定的技术处理,将数据处理成Excel格式。目前,常用的Excel处理技术有两种:一种是使用Microsoft Office COM技术来实现定制化的Excel报表,这种技术需要先安装Office软件包或使用web-based COM automation技术,然后利用JavaScript或其他脚本语言实现数据和Excel表格之间的交互,并将数据填充到表格中;另一种是使用Apache POI项目来处理Excel表格,这是一个完全开源的Java库,可以直接在Java中使用,其优点是极其便捷且具有很高的可移植性。 总之,将网页数据导出Excel表格可以方便用户对数据进行分析与整理,给用户带来很大的便利。在实现这一功能时,我们需要注意选择合适的数据传输协议和Excel处理技术,并严格遵守各项安全规定以保障数据安全。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值