当前位置: 首页 > news >正文

vue element ui excel json2csv csv 导出

在使用vue element ui 开发信息系统时,excel列表导出是必备功能,我在实现此功能时,一般把csv文件作为文件导出,基于csv文件的简单格式,这样既可以使用excel打开供业务人员使用,也方便程序开发人员文件处理。

这里引入json2csv来完成导出功能需求

const result =json2csv.parse(rows, { fields: fields,excelStrings:true});复制代码

注意”fields,excelStrings:true“设置,加入此设置后csv在excel打开后数字、日期才能正确显示。

下面是源码

//使用json2csv包,感谢作者
import json2csv from 'json2csv'
//获取table组件每一行的值
function getRow(row, columns) {
  let obj = {}

  columns.forEach(col => {
    let val = row[col.prop]

    if (col.formatter) {
      val = col.formatter(row, col, val)
    }

    obj[col.prop] = val;
  })

  return obj
}
export default function ExportCsv(data, columns, fileName) {
 //导出的数据行
  const rows = data.map(t => getRow(t, columns))
  //导出的数据列标题
  const fields = columns.map(t => { return {value:t.prop,label:t.label}})

  try {

    const result =json2csv.parse(rows, { fields: fields,excelStrings:true});
    const csvContent = 'data:text/csv;charset=utf-8,\uFEFF' + result
    const link = document.createElement('a')
    link.href = encodeURI(csvContent)
    link.download = `${fileName}.csv`
    document.body.appendChild(link) // Required for FF
    link.click()
    document.body.removeChild(link) // Required for FF
  } catch (err) {
    alert(err)
  }
}复制代码


转载于:https://juejin.im/post/5b8a03a051882542f71f20c6

相关文章:

  • 这7个不可错过的数据可视化技术,让你的位置信息跃然纸上
  • JAVA运维-Tomcat支持APR模式
  • 路由器密码忘了怎么办 自己动手不求人
  • 源码编译安装 PHP 7.1.5 + nginx 1.12.0
  • 微信分享JS-SDK
  • 独家 | 环境大数据的应用案例及前景
  • P4165 [SCOI2007]组队
  • 跨域问题
  • laraval+node.js实现websocket
  • PowerShell 脚本执行策略
  • MSDN SmartCast更改下载步骤
  • QT之二维绘图:场景,图元,视图
  • DockOne微信分享( 八十八):PPTV聚力传媒的Docker与DevOps
  • VM中ubuntu虚拟机共享文件夹,mnt下面没有hgfs
  • 软件測试的类型、方法以及策略------一张图搞定
  • ECS应用管理最佳实践
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • HTTP请求重发
  • Java小白进阶笔记(3)-初级面向对象
  • JDK 6和JDK 7中的substring()方法
  • Rancher-k8s加速安装文档
  • 彻底搞懂浏览器Event-loop
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 如何进阶一名有竞争力的程序员?
  • 使用 Docker 部署 Spring Boot项目
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • #1015 : KMP算法
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (C#)一个最简单的链表类
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (黑马C++)L06 重载与继承
  • (十一)手动添加用户和文件的特殊权限
  • (转)jdk与jre的区别
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET 分布式技术比较
  • .NET 中 GetProcess 相关方法的性能
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET程序员迈向卓越的必由之路
  • .net反编译的九款神器
  • @FeignClient注解,fallback和fallbackFactory
  • @Repository 注解
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [AutoSar]BSW_Com07 CAN报文接收流程的函数调用
  • [BUG]vscode插件live server无法自动打开浏览器
  • [BUUCTF 2018]Online Tool(特详解)