csv datatable 乱码 导出_填坑:前端导出csv文件

本文介绍了在前端实现CSV文件导出的方法,包括使用Blob和URL创建数据URL,利用a标签下载文件,以及处理CSV中文乱码和Excel自动转换数字的问题。还提供了一个基于vue2.0的示例,并封装成了npm包`csv-exportor`。
摘要由CSDN通过智能技术生成

在前后端分离的情况下,通常前端浏览器提供用户文件下载的功能的实现方式如下:前端请求后端api

后端根据前端的请求生成一个文件

后端返回一个下载的url地址

前端利用a标签的download属性,实现用户的点击下载。

在jquery中的dataTable有非常方便的导出csv的功能,但是jquery对于现在的web来说太重了,我也不需要其中的大部分功能,所以我实现了一个简单的csv文件生成导出的模块,方便日常使用。

是否应该在前端导出csv文件?

对用用户需要简单的导出表格中数据的功能,通过前端实现,一方面可以减少一次api的请求,提升响应速度,另一方面,有时候客户可能确实需要这样一个在前端导出csv文件的功能,比如用户需要选中表格中某几行数据进行导出,显然在前端可以更便捷灵活的操作。

demo

本文中,我将实现一个将表格数据转换为csv的格式,并生成一个指定文件名的csv文件,供用户下载的功能。

我将该功能进行了封装发布到了npm上

csv-exportor

demo实现基于前端框架vue2.0,但是事实上适用于任何前端框架。

示例demo

具体实现

本身的实现其实不难,但是遇到了挺多的坑,所以总结一下。

将表格数据转换为csv格式

这里为了方便起见,我使用了库comma-separated-values,无论性能还是使用都没什么问题。

import CSV from 'comma-separated-values';

// data为表格数据&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值