需求:添加了一个按钮,将中的指定table存储为Excel文件。
在网上search了许多方案,有的只能在IE上用,有的依赖什么什么软件,有的能在Google Chrome上用,不能在IE上用。
我是东拼西凑,再加小修小改完成了任务。My eggs are so painful!
So 记录一下代码,怕以后还会用到。。。(第一次深深地觉得IE是多么的 eggache!!!!!)
//小部分地方用了jQuery来选择或修改html元素,jQuery还是挺强大,容易入门的。不想用jQuery的话,可以换成js原生代码
//导出Excel表格,mytable参数是待导出的table的id
function tabletoExcel(mytalbe) {
// getExplore()返回1,说明是不是Google Chrome、Firefox、Opera、Safari,那么就认为是IE了。(网上流传的判断IE的js代码好多在Win7无法使用。。。。。。
if (getExplorer() == 1) {
//是IE的话,就调用toExcel()方法来导出Excel表格,不依赖微软的Excel产品。(toExcel()方法的定义见下面)
toExcel(mytable, '');
return;
}
// 不是IE的话就调用下面的代码导出Excel文件
//获得id为mytable的table的html元素
var table=document.getElementById(mytable);
// 克隆(复制)此table元素,这样对复制品进行修改(如添加或改变table的标题等),导出复制品,而不影响原table在浏览器中的展示。
table = table.cloneNode(true);
//下面五行代码就是用来改变table中的某些信息的,不需要的话可以注释,或修改。
var name=$("#cur_title_date").text()+"XXX信息统计表";
var caption_orig = table.getElementsByTagName("caption");
$(caption_orig).text(name);
var th_first_ele = table.getElementsByTagName("th")[0];
th_first_ele.innerHTML="XXX的编号";
// 下面的代码才是真正用来将html table导出Excel表格