papaparse 上传下载csv

前后端分离开发的话,总是希望通过json传输数据,但如果要上传表格文件的话,就需要把表格转成json。这里我用的这个papaparse插件。感觉还可以

 $('#upload').click(function()
    {
        if (!$('#caaa')[0].files.length) {
            commonFn.layerMsg('请选择数据文件');
        } else {
            var config = configFn();
            $('#caaa').parse({
                config: config
            });
        }
    })

然后下面是配置函数

//-----------------------------------配置参数
    function configFn() {
        var config = {
            delimiter: "",
            newline: "",
            header: true,
            dynamicTyping: false,
            preview: 0,
            encoding: "gb2312",
            worker: false,
            comments: false,
            step: undefined,
            complete: completeFn,//上传成功时执行哪个函数
            error: undefined,
            download: false,
            skipEmptyLines: true,
            chunk: undefined,
            fastMode: undefined,
            beforeFirstChunk: undefined
        };
        return config;
    }

完成后的函数

function completeFn(results) {
        console.log(results);
        if(results.errors.length != 0 ){
            commonFn.layerMsg('上传出错,请修改'+JSON.stringify(results.errors));
        }else{}

这是上传csv,如果需要下载,这个插件也支持,不过他只支持到给你将json转成csv格式,其他的还得自己做

html部分

<a id="downloadform" onclick="clickDownload(this)" download="downlaodss.csv" href="#"  class="btn btn-primary " >下载表单</a>

js部分

function clickDownload(aLink)
{
     $.ajax({
     'url':'aaaaaaaa',
     data:{dopost:'regbase',step:'1'},
     type:'get',
     async:false,
     dataType:"json",
     success: function(data){
         alert(1)
         console.log(data)
         var csv = Papa.unparse({
             data:data.data,
             header:false,
             beforeFirstChunk:false
         });
         var str =  encodeURIComponent(csv);
         aLink.href = "data:text/csv;charset=utf-8,\ufeff"+str;
     },
     error:function (err) {
         commonFn.layerMsg('请求失败');
         return false;
     }
     })
}

完成~~~0.0

随机浏览