将HTML表格导出到EXCEL,兼容Firefox,支持中文
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>HTML表格导出到EXCEL</title>
<script type="text/javascript" language="javascript">
var idTmr;
function getExplorer()
{
var explorer = window.navigator.userAgent;
//ie
if (explorer.indexOf("MSIE") >= 0)
{
return 'ie';
}
//firefox
else if (explorer.indexOf("Firefox") >= 0)
{
return 'Firefox';
}
//Chrome
else if (explorer.indexOf("Chrome") >= 0)
{
return 'Chrome';
}
//Opera
else if (explorer.indexOf("Opera") >= 0)
{
return 'Opera';
}
//Safari
else if (explorer.indexOf("Safari") >= 0)
{
return 'Safari';
}
}
function table2excel(tableid)
{ //整个表格拷贝到EXCEL中
if (getExplorer() == 'ie')
{
var curTbl = document.getElementById(tableid);
var oXL = new ActiveXObject("Excel.Application"); //创建AX对象excel
var oWB = oXL.Workbooks.Add();
//获取workbook对象
var xlsheet = oWB.Worksheets(1);
//激活当前sheet
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
//把表格中的内容移到TextRange中
sel.select();
//全选TextRange中内容
sel.execCommand("Copy");
//复制TextRange中内容
xlsheet.Paste();
//粘贴到活动的EXCEL中
oXL.Visible = true;
//设置excel可见属性 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);
//xls.visible = false;
oXL.Quit();
oXL = null;
//结束excel进程,退出完成
//window.setInterval("Cleanup();",1);
idTmr = window.setInterval("Cleanup();", 1); } }
else
{
tableToExcel(tableid)
}
}
function Cleanup()
{
window.clearInterval(idTmr);
CollectGarbage();
}
var tableToExcel = (function ()
{
var uri = 'data:text/xls;charset=utf-8,\ufeff,',
template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>',
base64 = function (s)
{
return window.btoa(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)) var downloadLink = document.createElement("a");
downloadLink.href = uri + format(template, ctx);
downloadLink.download = '统计.xls';
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
}
}
)() </script> </head>
<body>
<table id="targetTable" cellpadding="0" cellspacing="0" border="1">
<tr align="center">
<th>第一列</th>
<th>第二列</th>
<th>第三列</th>
</tr>
<tr align="center">
<td>a</td>
<td>b</td>
<td rowspan="2" style="border:0">
<table width="100%" cellpadding="0" cellspacing="0" border="1">
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td rowspan="2">3</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
</tr>
</table>
</td>
</tr>
<tr align="center">
<td>c</td>
<td>d</td>
</tr>
</table>
</br>
<input id="Button1" type="button" value="导出EXCEL" onclick="javascript:table2excel('targetTable')" />
</body>
</html>


将HTML表格导出到EXCEL,兼容Firefox,支持中文的更多相关文章
- JS前端将table导出到excel 兼容谷歌 IE 且保留表格样式
CDSN上博主给我一段代码,可将表格导出为EXCEL文档,原文见: https://blog.csdn.net/zz210891470/article/details/94717644 向博主学习.致 ...
- 网站开发进阶(二十五)js如何将html表格导出为excel文件
js如何将html表格导出为excel文件 赠人玫瑰,手留余香.若您感觉此篇博文对您有用,请花费2秒时间点个赞,您的鼓励是我不断前进的动力,共勉! jsp页面数据导出成excel的方法很 ...
- 纯JS 将table表格导出到excel
html <div > <button type="button" onclick="getXlsFromTbl('tableExcel','myDiv ...
- 使用JavaScript把页面上的表格导出为Excel文件
如果在页面上展示了一个数据表格,而用户想把这个表格导出为Excel文件,那么在要求不高的情况下,可以不通过服务器生成表格,而是直接利用JavaScript的Blob和Object URL特性将表格导出 ...
- JS 将页面上的表格导出为 Excel 文件
如果在页面上展示了一个表格,想把这个表格导出为Excel文件,那么在要求不高的情况下,可以直接利用 JavaScript 的 Blob 和 Object URL 特性将表格导出.不过,这就是利用了 E ...
- 网站开发进阶(三十一)js如何将html表格导出为excel文件(后记)
js如何将html表格导出为excel文件(后记) 前言 项目前期做了个导出Excel表格的功能,但是经过测试发现只有在IE上才可以正确实现,在Chrome等浏览器中无法实现导出效果.经过上网搜索,尝 ...
- vue将表格导出为excel
vue将表格导出为excel 一:在项目中需要安装2个依赖项,如下命令: npm install --save file-saver xlsx 二:在vue文件中如下使用即可: <templat ...
- 表格导出到excel的样式消失该如何修改
工作中遇到一需求,要将后台的表格导出到excel后的表格样式该如何修改呢? 其实表格导出首先需要了解两个插件:jquery.table2excel.js和tableExport.js 1.第一步,写一 ...
- 将表格导出为excel
<table id="tableExcel" border="1"> <tr> <th>零</th> <t ...
随机推荐
- Ajax异步请求-简单模版
<script type="text/javascript"> window.onload = function () { document.getElementByI ...
- POJ1503: Integer Inquiry(连续多个大整数加法运算)
#include<iostream> #include<cstring> using namespace std; string sum; ; string tool(stri ...
- Hadoop HDFS概念学习系列之hdfs里的文件下载闲谈(二十六)
hdfs里的文件下载 可以,通过hadoop distributed system来下载,而且速度非常之快.涨知识!!! 或者,通过命令行的方式,也可以! ********************** ...
- hdu 1491 Octorber 21st
Octorber 21st Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- Stones
题目是:HDU1896 题目简述:输入一堆石头,每个石头有自己所在的位置p,以及自己可以抛多远的距离d.你每遇到第奇数个石头,就把石头丢出去,第偶数个石头就不管.计算出最后一个石头它所处的位置. 解法 ...
- VB操作Excel
在工程中添加引用:Microsoft Office 9.0 Object Library Microsoft Excel 9.0 Object Library ...
- MongoDB命令学习
mongodb不像关系型数据库有很强大的GUI客户端,虽然mongodb也有,但功能和稳定性实在不敢恭维,所以操作mongodb我们大部分 都是用类似cmd命令的方式(mongodb称为shell操作 ...
- POJ 1273 || HDU 1532 Drainage Ditches (最大流模型)
Drainage DitchesHal Burch Time Limit 1000 ms Memory Limit 65536 kb description Every time it rains o ...
- Graph(2014辽宁ACM省赛)
问题 F: Graph 时间限制: 1 Sec 内存限制: 128 MB 提交: 30 解决: 5 [cid=1073&pid=5&langmask=0" style=& ...
- iOS三种定时器的用法NSTimer、CADisplayLink、GCD
一,NSTimer //创建方式1 NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector: ...