a标签保存数据到csv文件

来源:互联网 发布:大淘客与淘宝联盟 编辑:程序博客网 时间:2024/06/05 04:31

html直接使用a标签保存数据到文件,我浏览了一些插件和js方法,大抵与自己要求还是会有 出入,想来想去觉得还是自己写,至少可以保证扩展性,也方便优化。

这时我看到这样一篇博客总结的很赞,http://blog.csdn.net/oscar999/article/details/16342699

不过在使用过程中还是需要稍微修改点东西:

<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8"> 
<script>
function clickDownload(aLink) 
{

var str = "col1,col2,col3\nvalue1,value2,value3";
  str =  encodeURIComponent(str); 
 aLink.href = "data:text/csv;charset=utf-8,"+str; 

}

</script>

</head>

<body>

 <a id="test" onclick="clickDownload(this)" download="downlaod.csv" href="#">download</a> 

</body>

遇到问题和解决:

1. 开始我使用了该篇博客作者的源代码,发现弹出下载框两次,是因为function中多了一句aLink.click();

这句话删掉就ok了。

2. 在该方法中,分列使用英文逗号分隔,分行使用\n换行分隔,那么如果想在一个单元格里存好长好长的文本,似乎时间伤脑筋的事情,

因为按默认方法执行的结果是,你的一段话会被逗号分割成好多列,这里我用了一个有点投机取巧的办法,把文本内容中的逗号全部替换成中文逗号,

这样一来,这个问题就解决了,然而在这个问题上,由于需要存储的数据文本我有一些正则的处理,也看到有人说,正则后的String,使用 replace(),是只能

替换掉第一个字符的,(我亲测是这样没错,只是不明白为什么会有这样的情况,哪位大神知道的话,能告知一声,感激感激~),对这个问题的解决方法是

原本str.replace(",",","); 替换成: str.replace(/,/g,","),这样就完美解决啦~

字符串全部替换参考:

http://www.cnblogs.com/si-shaohua/p/3836033.html

方法都是本人测试过,有误或者有更好的办法,欢迎知道~~~ ……^_^

0 0
原创粉丝点击