博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web 端 js 导出csv文件(使用a标签)
阅读量:6245 次
发布时间:2019-06-22

本文共 2567 字,大约阅读时间需要 8 分钟。

hot3.png

function JSONToCSVConvertor(JSONData, ReportTitle, ChineseTitle,ShowLabel) {    //If JSONData is not an object then JSON.parse will parse the JSON string in an Object    var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;    if(arrData.length >= 20000)    {        alert("数据量过大无法导出,请把搜索时间范围缩短!");        return ;    }    if(arrData.length < 1)    {        alert("没有数据");        return ;    }    var CSV = '';        //Set Report title in first row or line        CSV += ReportTitle + '\r\n\n';    //This condition will generate the Label/Header    if (ShowLabel) {        var row = "";        row = ChineseTitle;                //This loop will extract the label from 1st index of on array        //for (var index in arrData[0])         //{              //Now convert each value to string and comma-seprated         //   row += index + ',';        //}        row = row.slice(0, -1);                //append Label row with line break        CSV += row + '\r\n';    }        //1st loop is to extract each row    for (var i = 0; i < arrData.length; i++)    {        var row = "";                //2nd loop will extract each column and convert it in string comma-seprated        for (var index in arrData[i])        {            //添加'\t'为了防止科学计数            row += '"' +"\t" +arrData[i][index] +"\t" + '",';        }        row.slice(0, row.length - 1);                //add a line break after each row        CSV += row + '\r\n';    }    if (CSV == '')     {                alert("Invalid data");        return;    }           //Generate a file name    var fileName = "";    //this will remove the blank-spaces from the title and replace it with an underscore    fileName += ReportTitle.replace(/ /g,"_");           //Initialize file format you want csv or xls    CSV =  encodeURIComponent(CSV);      var uri = 'data:text/xls;charset=utf-8,\ufeff' + CSV;       //this trick will generate a temp 
 tag    var link = document.createElement("a");        link.href = uri;        //set the visibility hidden so it will not effect on your web-layout    link.style = "visibility:hidden";    link.download = fileName + ".";        //this part will append the anchor tag and remove it after automatic click    document.body.appendChild(link);    link.click();    document.body.removeChild(link);};

上面是代码,一下是可以参考的文章:

http://blog.csdn.net/oscar999/article/details/16342699

http://www.oschina.net/project/tag/258/excel-tools

http://jsfiddle.net/hybrid13i/JXrwM/

http://my.oschina.net/zhaoyou/blog/9066

转载于:https://my.oschina.net/lvhuizhenblog/blog/414871

你可能感兴趣的文章
【REACT NATIVE 跨平台应用开发】环境搭建问题记录&&XCODE7模拟器上COMMAND+R失效的几种替换方法...
查看>>
C++实现选择排序
查看>>
面试题:合并两个排序的链表
查看>>
PPT控件 Spire.Presentation for .NET V2.8.35发布 | 支持设置演示幻灯片布局
查看>>
云环境所面临的安全威胁
查看>>
STM32 USB转串口驱动移植到SylixOS中遇到的问题总结
查看>>
组播学习分享 第三天
查看>>
【C#小知识】C#中一些易混淆概念总结(五)---------深入解析C#继承
查看>>
数据库优化
查看>>
TensorFlow的基本运算01-03
查看>>
Hive-有意思的query
查看>>
SylixOS调试与性能分析技术--内存泄漏检测
查看>>
消息队列-ActiveMQ
查看>>
LoadRunner12使用教程(二)——回放与录制
查看>>
工作收获点
查看>>
PhpStorm Terminal终端无法打开
查看>>
学习笔记TF036:实现Bidirectional LSTM Classifier
查看>>
应用监控预警&服务链路跟踪-Pinpoint介绍
查看>>
前端:后端,我要分手
查看>>
smarty isset 怎样使用
查看>>