js把页面的table标签导出为csv
2018-06-24 02:19:48来源:未知 阅读 ()
// 使用该保存方法,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不建议使用)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:react学习(三)之生命周期/refs/受控组件 篇
下一篇:移动端常见问题处理
- 基于JQuery的多标签实现代码 2020-03-29
- JS实现标签页切换效果 2020-03-12
- js调用刷新界面的几种方式 2020-03-05
- 默认让页面的第一个控件选中的javascript代码 2020-02-20
- 详解HTML5 使用video标签实现选择摄像头功能 2020-02-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
