纯JS 将table表格导出到excel
html
- <div >
- <button type="button" onclick="getXlsFromTbl('tableExcel','myDiv')">IE导出Excel方法</button>
- <button type="button" onclick="method5('tableExcel')">Chrome导出Excel</button>
- </div>
- <div id="myDiv">
- <table id="tableExcel" width="100%" border="" cellspacing="" cellpadding="">
- <tr>
- <td colspan="" align="center">html 表格导出到Excel</td>
- </tr>
- <tr>
- <td>列标题1</td>
- <td>列标题2</td>
- <td>类标题3</td>
- <td>列标题4</td>
- <td>列标题5</td>
- </tr>
- <tr>
- <td>aaa</td>
- <td>bbb</td>
- <td>ccc</td>
- <td>ddd</td>
- <td>eee</td>
- </tr>
- <tr>
- <td>AAA</td>
- <td>BBB</td>
- <td>CCC</td>
- <td>DDD</td>
- <td>EEE</td>
- </tr>
- <tr>
- <td>FFF</td>
- <td>GGG</td>
- <td>HHH</td>
- <td>III</td>
- <td>JJJ</td>
- </tr>
- </table>
- </div>
js
- <script language="JavaScript" type="text/javascript">
- //IE方法
- function getXlsFromTbl(inTblId, inWindow){
- try {
- var allStr = "";
- var curStr = "";
- if (inTblId != null && inTblId != "" && inTblId != "null") {
- curStr = getTblData(inTblId, inWindow);
- }
- if (curStr != null) {
- allStr += curStr;
- }
- else {
- alert("你要导出的表不存在");
- return;
- }
- var fileName = getExcelFileName();
- doFileExport(fileName, allStr);
- }
- catch(e) {
- alert("导出发生异常:" + e.name + "->" + e.description + "!");
- }
- }
- function getTblData(inTbl, inWindow) {
- var rows = ;
- var tblDocument = document;
- if (!!inWindow && inWindow != "") {
- if (!document.all(inWindow)) {
- return null;
- }
- else {
- tblDocument = eval(inWindow).document;
- }
- }
- var curTbl = tblDocument.getElementById(inTbl);
- var outStr = "";
- if (curTbl != null) {
- for (var j = ; j < curTbl.rows.length; j++) {
- for (var i = ; i < curTbl.rows[j].cells.length; i++) {
- if (i == && rows > ) {
- outStr += " t";
- rows -= ;
- }
- outStr += curTbl.rows[j].cells[i].innerText + "t";
- if (curTbl.rows[j].cells[i].colSpan > ) {
- for (var k = ; k < curTbl.rows[j].cells[i].colSpan - ; k++) {
- outStr += " t";
- }
- }
- if (i == ) {
- if (rows == && curTbl.rows[j].cells[i].rowSpan > ) {
- rows = curTbl.rows[j].cells[i].rowSpan - ;
- }
- }
- }
- outStr += "rn";
- }
- }
- else {
- outStr = null;
- alert(inTbl + "不存在 !");
- }
- return outStr;
- }
- function getExcelFileName() {
- var d = new Date();
- var curYear = d.getYear();
- var curMonth = "" + (d.getMonth() + );
- var curDate = "" + d.getDate();
- var curHour = "" + d.getHours();
- var curMinute = "" + d.getMinutes();
- var curSecond = "" + d.getSeconds();
- if (curMonth.length == ) {
- curMonth = "" + curMonth;
- }
- if (curDate.length == ) {
- curDate = "" + curDate;
- }
- if (curHour.length == ) {
- curHour = "" + curHour;
- }
- if (curMinute.length == ) {
- curMinute = "" + curMinute;
- }
- if (curSecond.length == ) {
- curSecond = "" + curSecond;
- }
- var fileName = "table" + "_" + curYear + curMonth + curDate + "_"
- + curHour + curMinute + curSecond + ".csv";
- return fileName;
- }
- function doFileExport(inName, inStr) {
- var xlsWin = null;
- if (!!document.all("glbHideFrm")) {
- xlsWin = glbHideFrm;
- }
- else {
- var width = ;
- var height = ;
- var openPara = "left=" + (window.screen.width / - width / )
- + ",top=" + (window.screen.height / - height / )
- + ",scrollbars=no,width=" + width + ",height=" + height;
- xlsWin = window.open("", "_blank", openPara);
- }
- xlsWin.document.write(inStr);
- xlsWin.document.close();
- xlsWin.document.execCommand('Saveas', true, inName);
- xlsWin.close();
- }
- //Chrome方法
- var idTmr;
- function getExplorer() {
- var explorer = window.navigator.userAgent ;
- //ie
- if (explorer.indexOf("MSIE") >= ) {
- return 'ie';
- }
- //firefox
- else if (explorer.indexOf("Firefox") >= ) {
- return 'Firefox';
- }
- //Chrome
- else if(explorer.indexOf("Chrome") >= ){
- return 'Chrome';
- }
- //Opera
- else if(explorer.indexOf("Opera") >= ){
- return 'Opera';
- }
- //Safari
- else if(explorer.indexOf("Safari") >= ){
- return 'Safari';
- }
- }
- function method5(tableid) {
- if(getExplorer()=='ie')
- {
- var curTbl = document.getElementById(tableid);
- var oXL = new ActiveXObject("Excel.Application");
- var oWB = oXL.Workbooks.Add();
- var xlsheet = oWB.Worksheets();
- var sel = document.body.createTextRange();
- sel.moveToElementText(curTbl);
- sel.select();
- sel.execCommand("Copy");
- xlsheet.Paste();
- oXL.Visible = true;
- try {
- var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");
- } catch (e) {
- print("Nested catch caught " + e);
- } finally {
- oWB.SaveAs(fname);
- oWB.Close(savechanges = false);
- oXL.Quit();
- oXL = null;
- idTmr = window.setInterval("Cleanup();", );
- }
- }
- else
- {
- tableToExcel(tableid)
- }
- }
- function Cleanup() {
- window.clearInterval(idTmr);
- CollectGarbage();
- }
- var tableToExcel = (function() {
- var uri = 'data:application/vnd.ms-excel;base64,',
- template = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>',
- base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) },
- format = function(s, c) {
- return s.replace(/{(\w+)}/g,
- function(m, p) { return c[p]; }) }
- return function(table, name) {
- if (!table.nodeType) table = document.getElementById(table)
- var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
- window.location.href = uri + base64(format(template, ctx))
- }
- })()
- </script>
纯JS 将table表格导出到excel的更多相关文章
- js操作table表格导出数据到excel方法
js导出excel资料很少,网上也找了很多,基本都不能用,要么只能是IE用,还必须要权限,这是非常不好的.后来到github上找到table2excel.js,虽然可以用,但仍然对IE支持不够,也算不 ...
- 将Table表格导出到Excel
1.导出当前页 效果如下: 前台代码: @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta nam ...
- JS 将Table内容导出到Excel(样式设计)
转载请注明来源:https://www.cnblogs.com/hookjc/ function saveAsExcel(tableID){ var tb = new TableToExcel(tab ...
- 网站开发进阶(二十五)js如何将html表格导出为excel文件
js如何将html表格导出为excel文件 赠人玫瑰,手留余香.若您感觉此篇博文对您有用,请花费2秒时间点个赞,您的鼓励是我不断前进的动力,共勉! jsp页面数据导出成excel的方法很 ...
- vue+iview中的table表格导出excel表格
一.iveiw框架中table中有exportCsv()方法可以导出.csv后缀文件,类似于excel文件,但是并不是excel文件. 二.实现table表格导出excel文件利用Blob.js 和 ...
- 网站开发进阶(三十一)js如何将html表格导出为excel文件(后记)
js如何将html表格导出为excel文件(后记) 前言 项目前期做了个导出Excel表格的功能,但是经过测试发现只有在IE上才可以正确实现,在Chrome等浏览器中无法实现导出效果.经过上网搜索,尝 ...
- JS 将页面上的表格导出为 Excel 文件
如果在页面上展示了一个表格,想把这个表格导出为Excel文件,那么在要求不高的情况下,可以直接利用 JavaScript 的 Blob 和 Object URL 特性将表格导出.不过,这就是利用了 E ...
- 使用js代码将html导出为Excel
js代码将html导出为Excel的方法: 直接上源码: <script type="text/javascript" language="javascript&q ...
- vue将表格导出为excel
vue将表格导出为excel 一:在项目中需要安装2个依赖项,如下命令: npm install --save file-saver xlsx 二:在vue文件中如下使用即可: <templat ...
随机推荐
- 山东省第七届ACM省赛------Fibonacci
Fibonacci Time Limit: 2000MS Memory limit: 131072K 题目描述 Fibonacci numbers are well-known as follow: ...
- 利用JavaScript来实现省份—市县的二级联动
所谓省-市二级联动是指当选择省份下拉选择框时,市县的下拉框会根据选择的省市而有相应的市县加载出来,如下图所示选择"上海市",城市的下拉选择框只会出现上海的市县: 这种二级联动非常常 ...
- 一个ubuntu phper的自我修养(lamp)
lamp环境搭建出坑记 lamp虽然大家都懂,但是还是要解释一下先,要做的是一个狭义的解释,以对应我们即将搭建的环境. L指linux(ubuntu). A指apache(apache2). M指my ...
- javascript作用域链与原型链有联系吗?
一般来说,作用域链是针对变量的,js里面大的范围上来说,只有两种作用域,全局作用域和函数内部作用域,如果函数1里面又定义了函数2(一般都是匿名函数), 那么就有了这么一个作用域链全局作用域==> ...
- selenium启动Chrome浏览器和禁止证书错误提示弹出
要把ChromeDriver放到代码中的文件夹中c://*******Application public static WebDriver WebDriverRun(WebDriver driver ...
- winform 对话框,保存,另存为,还有打印控件
学习的对话框的种类: 1.打开文件对话框(OpenFileDialog) 2.保存文件对话框(SaveFileDialog) 3.字体对话框(FontDialog) 4.颜色对话框(ColorDial ...
- 【线段树区间合并】HDU1540-Tunnel Warfare
一.题目 Description During the War of Resistance Against Japan, tunnel warfare was carried out extensiv ...
- Dream It Possible
反复听着Dream It Possible,想起自己的华为岁月,百感交集!
- 高通android开发缩写
1.TLMM MSM TLMM pinmux controller,Qualcomm MSM integrates a GPIO and Pin mux/config hardware, (TOP L ...
- jquery.validate使用 - 常用验证脚本
一些常用的验证脚本 不会写js了,只能从网上找一些常用的验证脚本. // 手机号码验证jQuery.validator.addMethod("mobile", function(v ...