前后端结合如何导出CSV文件

在常见的B/S架构中,也就是网站中,如果服务端需要导出一个一个数据表格怎么办?

常见的方法有两种:
1. 导出一个Excel文件
2. 导出CSV文件。

对于上述第一种,导出Excel的功能我做过,代码麻烦易错不说,而且并不是很有意义,毕竟很多情况下我们只是需要数据能看就可以(对于某些情况下)。
而且如果服务器需要导出excel,则服务器上还要安装office环境,代码要引用excel相关库,都是成本。
而导出csv就简单得多了。
有一点编程相关常识的都很容易理解,诸如markdown、latex、csv、html之类的文件的本质就是一个纯文本文件。
只是他们的“解释器”按照约定的规则,将其解释并展现成各种花样。
所以在很多对导出数据的要求不是很高的情况下,导出csv就是性价比最高的选择

如果不清楚csv是什么,那么找到随便一个csv文件,使用记事本打开看下大概就明白了。

经过我个人的开发经验,
导出csv的思路是什么呢?

1.服务端输出字符串返还给客户端,注意是字符串即可。就是csv格式的那种用逗号分隔的长长字符串。
2.浏览器接收到字符串,直接保存为一个csv文件即可。
此处javascript代码如下:

//导出
            $(document).on("click", "#exportBtn", function () {
                $.ajax({
                    url: "/Info/ExportCSV",
                    data: {
                      ...
                    },
                    type: "get",
                    success: function(data) {
                        var aaaa = "data:text/csv;charset=utf-8,\ufeff" + data;
                        var link = document.createElement("a");
                        link.setAttribute("href", aaaa);
                        var date = new Date();
                        var filename = date.pattern("yyyy-MM-dd HH:mm:ss");
                        link.setAttribute("download", filename + ".csv");
                        link.click();
                    }
                });
            });

亲测有效。
简单易操作。
无服务器环境依赖。
代码容易编写。

猜你喜欢

转载自blog.csdn.net/festone000/article/details/79097918