vue json对象 转csv文件并下载 vue两种方法引入外部js

本文介绍了在Vue项目中将JSON对象转换为CSV文件并进行下载的两种方法:一种是通过ES6的import导入外部JS库,另一种是利用window.JSONToCSV转换并下载。
摘要由CSDN通过智能技术生成

在这里插入图片描述

vue加载外部文件方式一 ,通过es6-import方法引入使用

export const JSonToCSV = {
   
    /*
     * obj是一个对象,其中包含有:
     * ## data 是导出的具体数据
     * ## fileName 是导出时保存的文件名称 是string格式
     * ## showLabel 表示是否显示表头 默认显示 是布尔格式
     * ## columns 是表头对象,且title和key必须一一对应,包含有
          title:[], // 表头展示的文字
          key:[], // 获取数据的Key
          formatter: function() // 自定义设置当前数据的 传入(key, value)
     */
    setDataConver: function (obj) {
   
        var bw = this.browser();
        if (bw['ie'] < 9) return; // IE9以下的
        var data = obj['data'],
            ShowLabel = typeof obj['showLabel'] === 'undefined' ? true : obj['showLabel'],
            fileName = (obj['fileName'] || 'UserExport') + '.csv',
            columns = obj['columns'] || {
   
                title: [],
                key: [],
                formatter: undefined
            };
        var ShowLabel = typeof ShowLabel === 'undefined' ? true : ShowLabel;
        var row = "", CSV = '', key;
        // 如果要现实表头文字
        if (ShowLabel) {
   
            // 如果有传入自定义的表头文字
            if (columns.title.length) {
   
                columns.title.map(function (n) {
   
                    row += n + ',';
                });
            } else {
   
                // 如果没有,就直接取数据第一条的对象的属性
                for (key in data) row += key + ',';
            }
            row = row.slice(0, -1); // 删除最后一个,号,即a,b, => a,b
            CSV += row + '\r\n'; // 添加换行符号
        }

        let typeRow = '';
        let valueRow = '';
        var regex = /\[|\]|【|】/g;
        for (key in data) {
   
            let str = JSON.stringify(data[key]);
            if (isNaN(str)) {
   
                if (str === "false" || str === "true") {
   
                    typeRow += "boolean" + ',';
                    valueRow += JSON.stringify(data[key]) + ',';
                } else if (regex.test(str)) {
   
                    typeRow += "array" + ',';
                    valueRow += '"' + data[key] + '",';
                } else {
   
                    typeRow += "string" + ',';
                    valueRow += data[key] + ',';
                }
            } else {
   
                typeRow += "int" + ',';
                valueRow += JSON.stringify(data[key]) + ',';
            }
        }
        typeRow = typeRow.slice(0, typeRow.length - 1); // 删除最后一个,
        valueRow = valueRow.slice(0, value
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值