// 使用该保存方法,table必须外嵌一个div且不能有任何其他元素 否则ie下载会出现其他数据

 //tableid , title 为文件保存的文件名

function saveCode(tableid, title) {
var winname;
try {
if (navigator.userAgent.indexOf("MSIE") > 0) //IE浏览器
{
var strHTML = $("#" + tableid).parent().html();
//alert("IE浏览器");
winname = window.open("ToExcel", "_blank", 'top=10000'); winname.document.open('text/html', 'replace');
winname.document.write("<style>");
winname.document.write("table{border:solid 1px #000;text-align:center;border-collapse:collapse; border-spacing:0;}");
winname.document.write("table td{border:solid 1px #000;text-align:center;}");
winname.document.write("table th{border:solid 1px #000;text-align:center;}");
winname.document.write("</style>");
winname.document.write(strHTML);
winname.document.execCommand('SaveAs', '', title + '.xls');
document.execCommand("ClearAuthenticationCache");
winname.close();
}
else if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) //Firefox
{
//alert("Firefox");
var str = getTblDataByFirefox(tableid, this);
//支持中文
var uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str);
var downloadLink = document.createElement("a");
downloadLink.href = uri;
downloadLink.download = title + ".csv"; document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink); }
else //Google Chrome
{
//alert("Google Chrome等浏览器");
var str = getTblData(tableid, this); //支持中文
var uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str); var downloadLink = document.createElement("a");
downloadLink.href = uri;
downloadLink.download = title + ".csv"; document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
}
} catch (e) {
alert(e.Message);
return false;
}
return false;
} function getTblData(inTbl, inWindow) { var rows = 0;
var tblDocument = document; tblDocument = eval(inWindow).document;
var curTbl = tblDocument.getElementById(inTbl);
var outStr = "";
if (curTbl != null) {
for (var j = 0; j < curTbl.rows.length; j++) {
for (var i = 0; i < curTbl.rows[j].cells.length; i++) { if (i == 0 && rows > 0) {
outStr += ",";
rows -= 1;
} outStr +=curTbl.rows[j].cells[i].innerText + ",";
if (curTbl.rows[j].cells[i].colSpan > 1) {
for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {
outStr += ",";
}
}
if (i == 0) {
if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {
rows = curTbl.rows[j].cells[i].rowSpan - 1;
}
}
}
outStr += "\r\n";//换行
}
} else {
outStr = null;
alert(allPage.noData);
}
return outStr;
}

  开发中遇到一些需要导出数据之类的可以试试该方式 (ps:阿拉伯语言有bug不建议使用)

js把页面的table标签导出为csv的更多相关文章

  1. 高并发分布式系统中生成全局唯一(订单号)Id js返回上一页并刷新、返回上一页、自动刷新页面 父页面操作嵌套iframe子页面的HTML标签元素 .net判断System.Data.DataRow中是否包含某列 .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数

    高并发分布式系统中生成全局唯一(订单号)Id   1.GUID数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么通过组合的方式,保留GUID的10个字节,用另6个字节表示GUID生成的时间(D ...

  2. 今天做一个项目的时候,要在一个编辑的jsp页面的textarea标签设置value属性,结果发现他没有value属性,但是是编辑页面又必须要回显要修改的内容,所以在参考了w3cschool之后很轻松的解决了这个问题。

    今天做一个项目的时候,要在一个编辑的jsp页面的textarea标签设置value属性,结果发现他没有value属性,但是是编辑页面又必须要回显要修改的内容,所以在参考了w3cschool之后很轻松的 ...

  3. js技术之拖动table标签

    一.js技术之拖动table标签 起因:前几天公司,突然安排一个任务 任务描述:要求尺码table列表要像Excel表中一样可以直接移动整行尺码到任意行位置 技术点:采用ui的sortable技术来h ...

  4. html页面的head标签下

    head区是指首页html代码的<head>和</head>之间的内容.  必须加入的标签  1.公司版权注释  <!--- the site is designed b ...

  5. 如何将jsp页面的table报表转换到excel报表导出

    假设这就是你的jsp页面: 我们会添加一个“导出到excel”的超链接,它会把页面内容导出到excel文件中.那么这个页面会变成这个样子 在此,强调一下搜索时关键词的重要性,这样一下子可以定位到文章, ...

  6. 可以完成99%的静态页面的HTML标签

    HTML:一套浏览器认知的规则HTML分为两个部分,头和身体.一个完整的网页相当于一个裸体的人,我们利用HTML给它穿上衣服,使它更好看.下面我将为大家介绍一下HTML一些基本的标签,而这些基本的标签 ...

  7. 把页面的Table直接输出到Excel文件中

    有个需求是统计的时候,为生成的html表格提供导出功能,但是这样导出Excel不会显示自身的表格 影响美观,但是excel会显示html的css样式,这里可以通过处理行对象的方式进行导出,但是处理起纵 ...

  8. 父页面操作嵌套iframe子页面的HTML标签元素

    一个页面A.html使用iframe嵌套一个页面B.html,在A页面写js操作B页面HTML元素,首先要获取到B页面document对象,才能对嵌套页面进行操作 请看一个实例,在A页面写js操作B页 ...

  9. 手机页面的meta标签

    <meta charset="utf-8"/><meta name="viewport" content="width=device ...

随机推荐

  1. javascript数组去重 String字符串去掉两端空格 javascript Array二分法排序 比较 javascript 求和

    通过原形添加方法: ==================数组去重(对象去重法)======================= Array.prototype.unique=function(){ va ...

  2. jenkins添加类ubuntu/centos节点报错

    前言:在jenkins添加ubuntu节点,发现启动代理报错 以下是报错: [SSH] Checking java version of /usr/java/latest/bin/java Could ...

  3. nuxt

    nuxt nuxt 1.4.0 https://zh.nuxtjs.org/guide/installation vue init nuxt-community/starter-template te ...

  4. vs 2012 更新update4 后出现问题

    Could not load file or assembly 'file:///C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7 ...

  5. tensorflow安装-【老鱼学tensorflow】

    TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,Tensor ...

  6. Codeforces 1109E. Sasha and a Very Easy Test 线段树

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF1109E.html 题意 给定一个长度为 n 的数列 a,以及一个模数 M(不一定是质数). 要求支持 q ...

  7. sql多字段相减///单字段多值

    SELECT IFNULL(t.预算金额,)-IFNULL(t.实使用金额,)-IFNULL(SUM(f.已审核.待审核总数),)remainingMoney FROM 表名 t LEFT JOIN ...

  8. 程序员之路:python3+PyQt5+pycharm桌面GUI开发

    http://blog.sina.com.cn/s/blog_989218ad0102wz1k.html 先看效果: 图 1 没错,学过C#的同学应该很熟悉这个界面,按钮风格和界面风格很相似,万万没想 ...

  9. selenium之使用chrome浏览器测试(附chromedriver与chrome的对应关系表)

    https://www.cnblogs.com/JHblogs/p/7699951.html

  10. 【PostgreSQL】安装出现microsoft vc++ runtime installer

    1.找到下载的目录 2.新建一个文本文档 3.在文本文档上输入postgresql-11.1-1-windows-x64.exe --install_runtimes 0 4.修改文本文档后缀为.ba ...