ajax请求到数据怎么导出excel


$.ajax({
                type: "post",
                url: ctx+"/Servlet/Record/exportExcel",
                data: {},
                dataType: "json",
                success: function (data) {
                        
                }
            });

已经能请求到后端的数据,怎么再给它导出成excel

仅供参考:
要将数据导出为Excel,您可以使用一些JavaScript库来生成Excel文件,例如SheetJS、ExcelJS和js-xlsx等。这些库允许您使用JavaScript编程方式创建和导出Excel文件。

在您的示例代码中,您可以在Ajax请求成功后,使用这些库将数据导出为Excel文件,如下所示:

$.ajax({
    type: "post",
    url: ctx+"/Servlet/Record/exportExcel",
    data: {},
    dataType: "json",
    success: function (data) {
        // 从数据中创建工作簿
        var workbook = XLSX.utils.book_new();
        var sheet = XLSX.utils.json_to_sheet(data); // 将JSON数据转换为Excel表格

        // 将表格添加到工作簿
        XLSX.utils.book_append_sheet(workbook, sheet, "Sheet1");

        // 导出Excel文件
        var wbout = XLSX.write(workbook, { bookType: 'xlsx', bookSST: true, type: 'binary' });
        saveAs(new Blob([s2ab(wbout)], { type: "application/octet-stream" }), 'export.xlsx');
    }
});

// 将二进制字符串转换为字节数组
function s2ab(s) {
    var buf = new ArrayBuffer(s.length);
    var view = new Uint8Array(buf);
    for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
    return buf;
}

在上面的代码中,我们使用了SheetJS库将JSON数据转换为Excel表格,并使用FileSaver.js库中的saveAs()函数将Excel文件保存到本地磁盘中。

需要注意的是,您需要将这些库引入到您的HTML文件中,例如:


<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.8/xlsx.full.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.2/FileSaver.min.js"></script>

希望这可以帮助您将数据导出为Excel文件。

返回类型不应该是json了,应该是文件流的形式来进行返回

在ajax请求中,请求到后端数据后,可以将数据格式化为Excel文件的形式,然后将Excel文件作为响应返回给前端。前端通过Blob对象将返回的文件进行下载。


$.ajax({
    type: "post",
    url: ctx + "/Servlet/Record/exportExcel",
    data: {},
    dataType: "json",
    success: function (data) {
        // 创建一个Blob对象
        var blob = new Blob([data], {
            type: "application/vnd.ms-excel"
        });

        // 创建一个下载链接,并设置下载属性
        var url = URL.createObjectURL(blob);
        var a = document.createElement("a");
        a.href = url;
        a.download = "data.xlsx";

        // 模拟点击下载链接
        a.click();

        // 释放对象URL资源
        URL.revokeObjectURL(url);
    }
});

在上面的示例中,通过new Blob([data], { type: "application/vnd.ms-excel" })创建了一个Blob对象,将返回的数据转换为Excel格式。然后创建一个下载链接,并设置下载属性,将Blob对象的URL指定给链接的href属性。最后模拟点击下载链接进行文件下载。

有用望采纳。

你是说 前端 自己生成excel然后下载 还是 后端生成 ,前端 获取到 文件流 然后下载。

下载 方法 a ,iframe 都行
https://blog.csdn.net/weixin_44058725/article/details/103667552

可以使用Excel的API,如Excel.js,将ajax请求到的数据转换为Excel文件,然后使用Excel的saveAs()方法将文件保存到本地。