html

  1. <div >
  2. <button type="button" onclick="getXlsFromTbl('tableExcel','myDiv')">IE导出Excel方法</button>
  3. <button type="button" onclick="method5('tableExcel')">Chrome导出Excel</button>
  4. </div>
  5. <div id="myDiv">
  6. <table id="tableExcel" width="100%" border="" cellspacing="" cellpadding="">
  7. <tr>
  8. <td colspan="" align="center">html 表格导出到Excel</td>
  9. </tr>
  10. <tr>
  11. <td>列标题1</td>
  12. <td>列标题2</td>
  13. <td>类标题3</td>
  14. <td>列标题4</td>
  15. <td>列标题5</td>
  16. </tr>
  17. <tr>
  18. <td>aaa</td>
  19. <td>bbb</td>
  20. <td>ccc</td>
  21. <td>ddd</td>
  22. <td>eee</td>
  23. </tr>
  24. <tr>
  25. <td>AAA</td>
  26. <td>BBB</td>
  27. <td>CCC</td>
  28. <td>DDD</td>
  29. <td>EEE</td>
  30. </tr>
  31. <tr>
  32. <td>FFF</td>
  33. <td>GGG</td>
  34. <td>HHH</td>
  35. <td>III</td>
  36. <td>JJJ</td>
  37. </tr>
  38. </table>
  39. </div>

js

  1. <script language="JavaScript" type="text/javascript">
  2. //IE方法
  3. function getXlsFromTbl(inTblId, inWindow){
  4.  
  5. try {
  6. var allStr = "";
  7. var curStr = "";
  8. if (inTblId != null && inTblId != "" && inTblId != "null") {
  9.  
  10. curStr = getTblData(inTblId, inWindow);
  11.  
  12. }
  13. if (curStr != null) {
  14. allStr += curStr;
  15. }
  16.  
  17. else {
  18.  
  19. alert("你要导出的表不存在");
  20. return;
  21. }
  22. var fileName = getExcelFileName();
  23. doFileExport(fileName, allStr);
  24.  
  25. }
  26.  
  27. catch(e) {
  28.  
  29. alert("导出发生异常:" + e.name + "->" + e.description + "!");
  30.  
  31. }
  32.  
  33. }
  34. function getTblData(inTbl, inWindow) {
  35.  
  36. var rows = ;
  37. var tblDocument = document;
  38. if (!!inWindow && inWindow != "") {
  39.  
  40. if (!document.all(inWindow)) {
  41. return null;
  42. }
  43.  
  44. else {
  45. tblDocument = eval(inWindow).document;
  46. }
  47.  
  48. }
  49.  
  50. var curTbl = tblDocument.getElementById(inTbl);
  51. var outStr = "";
  52. if (curTbl != null) {
  53. for (var j = ; j < curTbl.rows.length; j++) {
  54. for (var i = ; i < curTbl.rows[j].cells.length; i++) {
  55.  
  56. if (i == && rows > ) {
  57. outStr += " t";
  58. rows -= ;
  59. }
  60.  
  61. outStr += curTbl.rows[j].cells[i].innerText + "t";
  62. if (curTbl.rows[j].cells[i].colSpan > ) {
  63. for (var k = ; k < curTbl.rows[j].cells[i].colSpan - ; k++) {
  64. outStr += " t";
  65. }
  66. }
  67. if (i == ) {
  68. if (rows == && curTbl.rows[j].cells[i].rowSpan > ) {
  69. rows = curTbl.rows[j].cells[i].rowSpan - ;
  70. }
  71. }
  72. }
  73. outStr += "rn";
  74. }
  75. }
  76.  
  77. else {
  78. outStr = null;
  79. alert(inTbl + "不存在 !");
  80. }
  81. return outStr;
  82. }
  83. function getExcelFileName() {
  84. var d = new Date();
  85. var curYear = d.getYear();
  86. var curMonth = "" + (d.getMonth() + );
  87. var curDate = "" + d.getDate();
  88. var curHour = "" + d.getHours();
  89. var curMinute = "" + d.getMinutes();
  90. var curSecond = "" + d.getSeconds();
  91. if (curMonth.length == ) {
  92. curMonth = "" + curMonth;
  93. }
  94.  
  95. if (curDate.length == ) {
  96. curDate = "" + curDate;
  97. }
  98.  
  99. if (curHour.length == ) {
  100. curHour = "" + curHour;
  101. }
  102.  
  103. if (curMinute.length == ) {
  104. curMinute = "" + curMinute;
  105. }
  106.  
  107. if (curSecond.length == ) {
  108. curSecond = "" + curSecond;
  109. }
  110. var fileName = "table" + "_" + curYear + curMonth + curDate + "_"
  111. + curHour + curMinute + curSecond + ".csv";
  112. return fileName;
  113.  
  114. }
  115. function doFileExport(inName, inStr) {
  116. var xlsWin = null;
  117. if (!!document.all("glbHideFrm")) {
  118. xlsWin = glbHideFrm;
  119. }
  120. else {
  121. var width = ;
  122. var height = ;
  123. var openPara = "left=" + (window.screen.width / - width / )
  124. + ",top=" + (window.screen.height / - height / )
  125. + ",scrollbars=no,width=" + width + ",height=" + height;
  126. xlsWin = window.open("", "_blank", openPara);
  127. }
  128. xlsWin.document.write(inStr);
  129. xlsWin.document.close();
  130. xlsWin.document.execCommand('Saveas', true, inName);
  131. xlsWin.close();
  132.  
  133. }
  134.  
  135. //Chrome方法
  136. var idTmr;
  137. function getExplorer() {
  138. var explorer = window.navigator.userAgent ;
  139. //ie
  140. if (explorer.indexOf("MSIE") >= ) {
  141. return 'ie';
  142. }
  143. //firefox
  144. else if (explorer.indexOf("Firefox") >= ) {
  145. return 'Firefox';
  146. }
  147. //Chrome
  148. else if(explorer.indexOf("Chrome") >= ){
  149. return 'Chrome';
  150. }
  151. //Opera
  152. else if(explorer.indexOf("Opera") >= ){
  153. return 'Opera';
  154. }
  155. //Safari
  156. else if(explorer.indexOf("Safari") >= ){
  157. return 'Safari';
  158. }
  159. }
  160. function method5(tableid) {
  161. if(getExplorer()=='ie')
  162. {
  163. var curTbl = document.getElementById(tableid);
  164. var oXL = new ActiveXObject("Excel.Application");
  165. var oWB = oXL.Workbooks.Add();
  166. var xlsheet = oWB.Worksheets();
  167. var sel = document.body.createTextRange();
  168. sel.moveToElementText(curTbl);
  169. sel.select();
  170. sel.execCommand("Copy");
  171. xlsheet.Paste();
  172. oXL.Visible = true;
  173.  
  174. try {
  175. var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");
  176. } catch (e) {
  177. print("Nested catch caught " + e);
  178. } finally {
  179. oWB.SaveAs(fname);
  180. oWB.Close(savechanges = false);
  181. oXL.Quit();
  182. oXL = null;
  183. idTmr = window.setInterval("Cleanup();", );
  184. }
  185.  
  186. }
  187. else
  188. {
  189. tableToExcel(tableid)
  190. }
  191. }
  192. function Cleanup() {
  193. window.clearInterval(idTmr);
  194. CollectGarbage();
  195. }
  196. var tableToExcel = (function() {
  197. var uri = 'data:application/vnd.ms-excel;base64,',
  198. template = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>',
  199. base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) },
  200. format = function(s, c) {
  201. return s.replace(/{(\w+)}/g,
  202. function(m, p) { return c[p]; }) }
  203. return function(table, name) {
  204. if (!table.nodeType) table = document.getElementById(table)
  205. var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
  206. window.location.href = uri + base64(format(template, ctx))
  207. }
  208. })()
  209.  
  210. </script>

纯JS 将table表格导出到excel的更多相关文章

  1. js操作table表格导出数据到excel方法

    js导出excel资料很少,网上也找了很多,基本都不能用,要么只能是IE用,还必须要权限,这是非常不好的.后来到github上找到table2excel.js,虽然可以用,但仍然对IE支持不够,也算不 ...

  2. 将Table表格导出到Excel

    1.导出当前页 效果如下: 前台代码: @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta nam ...

  3. JS 将Table内容导出到Excel(样式设计)

    转载请注明来源:https://www.cnblogs.com/hookjc/ function saveAsExcel(tableID){ var tb = new TableToExcel(tab ...

  4. 网站开发进阶(二十五)js如何将html表格导出为excel文件

    js如何将html表格导出为excel文件        赠人玫瑰,手留余香.若您感觉此篇博文对您有用,请花费2秒时间点个赞,您的鼓励是我不断前进的动力,共勉! jsp页面数据导出成excel的方法很 ...

  5. vue+iview中的table表格导出excel表格

    一.iveiw框架中table中有exportCsv()方法可以导出.csv后缀文件,类似于excel文件,但是并不是excel文件. 二.实现table表格导出excel文件利用Blob.js 和 ...

  6. 网站开发进阶(三十一)js如何将html表格导出为excel文件(后记)

    js如何将html表格导出为excel文件(后记) 前言 项目前期做了个导出Excel表格的功能,但是经过测试发现只有在IE上才可以正确实现,在Chrome等浏览器中无法实现导出效果.经过上网搜索,尝 ...

  7. JS 将页面上的表格导出为 Excel 文件

    如果在页面上展示了一个表格,想把这个表格导出为Excel文件,那么在要求不高的情况下,可以直接利用 JavaScript 的 Blob 和 Object URL 特性将表格导出.不过,这就是利用了 E ...

  8. 使用js代码将html导出为Excel

    js代码将html导出为Excel的方法: 直接上源码: <script type="text/javascript" language="javascript&q ...

  9. vue将表格导出为excel

    vue将表格导出为excel 一:在项目中需要安装2个依赖项,如下命令: npm install --save file-saver xlsx 二:在vue文件中如下使用即可: <templat ...

随机推荐

  1. 山东省第七届ACM省赛------Fibonacci

    Fibonacci Time Limit: 2000MS Memory limit: 131072K 题目描述 Fibonacci numbers are well-known as follow: ...

  2. 利用JavaScript来实现省份—市县的二级联动

    所谓省-市二级联动是指当选择省份下拉选择框时,市县的下拉框会根据选择的省市而有相应的市县加载出来,如下图所示选择"上海市",城市的下拉选择框只会出现上海的市县: 这种二级联动非常常 ...

  3. 一个ubuntu phper的自我修养(lamp)

    lamp环境搭建出坑记 lamp虽然大家都懂,但是还是要解释一下先,要做的是一个狭义的解释,以对应我们即将搭建的环境. L指linux(ubuntu). A指apache(apache2). M指my ...

  4. javascript作用域链与原型链有联系吗?

    一般来说,作用域链是针对变量的,js里面大的范围上来说,只有两种作用域,全局作用域和函数内部作用域,如果函数1里面又定义了函数2(一般都是匿名函数), 那么就有了这么一个作用域链全局作用域==> ...

  5. selenium启动Chrome浏览器和禁止证书错误提示弹出

    要把ChromeDriver放到代码中的文件夹中c://*******Application public static WebDriver WebDriverRun(WebDriver driver ...

  6. winform 对话框,保存,另存为,还有打印控件

    学习的对话框的种类: 1.打开文件对话框(OpenFileDialog) 2.保存文件对话框(SaveFileDialog) 3.字体对话框(FontDialog) 4.颜色对话框(ColorDial ...

  7. 【线段树区间合并】HDU1540-Tunnel Warfare

    一.题目 Description During the War of Resistance Against Japan, tunnel warfare was carried out extensiv ...

  8. Dream It Possible

    反复听着Dream It Possible,想起自己的华为岁月,百感交集!

  9. 高通android开发缩写

    1.TLMM MSM TLMM pinmux controller,Qualcomm MSM integrates a GPIO and Pin mux/config hardware, (TOP L ...

  10. jquery.validate使用 - 常用验证脚本

    一些常用的验证脚本 不会写js了,只能从网上找一些常用的验证脚本. // 手机号码验证jQuery.validator.addMethod("mobile", function(v ...