下载数据生成json文件,csv文件

本文介绍了如何使用JavaScript实现CSV和JSON文件的导出功能,包括构造文件内容、创建Blob对象、生成临时链接并触发下载等步骤。适用于前端开发者学习和参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 下载CSV文件
    /**
     * 导出excel
     * @param {Object} title  标题列key-val
     * @param {Object} data   值列key-val
     * @param {Object} fileName  文件名称
     */
    exportCSV (title, data, fileName) {
      let CSV = ''
      let row = ''
      for (let i = 0; i < title.length; i++) {
        if (title[i].label) {
          row += title[i].label + ','
        }
      }
      row = row.slice(0, -1)
      CSV += row + '\r\n'
      for (let i = 0; i < data.length; i++) {
        let row = ''
        for (let j = 0; j < title.length; j++) {
          if (title[j].label) {
            row += '"' + (data[i][title[j].label] ? data[i][title[j].label] : '') + '"\t,'
          }
        }
        row.slice(0, row.length - 1)
        CSV += row + '\r\n'
      }
      let uri = new Blob(['\ufeff' + CSV], { type: 'text/csv' })
      if (window.navigator && window.navigator.msSaveOrOpenBlob) { // for IE
        window.navigator.msSaveOrOpenBlob(CSV, fileName + '.csv')
      } else { // for Non-IE(chrome、firefox etc.)
        let link = document.createElement('a')
        link.href = URL.createObjectURL(uri)
        link.style = 'visibility:hidden'
        link.download = fileName + '.csv'
        document.body.appendChild(link)
        link.click()
        document.body.removeChild(link)
      }
    },


    调用方法

    this.exportCSV(this.parameter.list.columns, this.list, 'data.csv')

     

  2. 下载json文件
exportJSON (data, filename) {
  if (!data) {
    return
  }
  data = JSON.stringify(data, undefined, 4)
  let url = window.URL.createObjectURL(new Blob([data], { type: 'text/json' }))
  let link = document.createElement('a')
  link.style.display = 'none'
  link.href = url
  link.download = filename // 下载后文件名
  link.click()
  document.body.removeChild(link)// 下载完成移除元素
  window.URL.revokeObjectURL(url)// 释放掉blob对象
}

调用方法

this.exportJSON(this.list, 'data.json')

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值