生成可以粘贴到excel的表格数据

最近遇到一个比较有趣的需求:
现有一个数据统计分析页面,主体内容是table,列出了筛选后的数据,想要复制其中的数据到剪贴板,然后粘贴到EXCEL中,方便进行后续的处理。
 
思路:
经过一番调研与实验,发现EXCEL对数据分行、分列的依据是数据中的制表符、换行符,也就是说只要在合适的位置插入制表符、换行符就可以实现我们想要的效果了。
不过,制表符和换行符是不可见的,键盘上也不能直接输入,要怎么实现呢?继续google,发现制表符对应的ascii是9,换行符对应的ascii是10,js则可以使用String.fromCharCode生成制表符和换行符,如下所示。
 
String.fromCharCode(9)  // 制表符,用于分列
String.fromCharCode(10) // 换行符,用于换行
 
实战:
我们实际测试一下效果,预计生成一个如下的表格。

 对应的代码就是:

[1,String.fromCharCode(9),2,String.fromCharCode(9),3,String.fromCharCode(10),4,String.fromCharCode(9),5,String.fromCharCode(9),6].join('')
 
将代码复制到浏览器执行,得到如下的结果:
1 2 3
4 5 6
复制到EXCEL中试试看,如下图所示:

 效果还不错,满足我们的需求,也足够灵活,看起来没有什么坑,进一步封装一下,实现一个二维数组数据 to EXCEL数据的方法就完成了。

原文地址:https://www.cnblogs.com/jydeng/p/13938280.html