function getExplorer() {//判断浏览器类型
var explorer = window.navigator.userAgent ;
//ie
if (explorer.indexOf("rv:11") >-1) {
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 toExcel(tableid) {
if(getExplorer()=='ie')
{
try {
var allStr = "";
var str = "";
if (tableid != null && tableid != "") {
str = getTblData(tableid);
}
if (str != null) {
allStr += str;
}
else {
alert("导出的表不存在!");
return;
}
var fileName ='报表';
doFileExport(fileName, allStr);
}
catch (e) {
alert("导出发生异常:" + e.name + "->" + e.description + "!");
}
}
else
{
tableToExcel(tableid)
}
}
var tableToExcel = (function() {
var uri = 'data:application/vnd.ms-excel;base64,',
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(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))
}
})()
function getTblData(inTbl, inWindow) {
var rows = 0;
var tblDocument = document;
/*if (!!inWindow && inWindow != "") {
if (!document.all(inWindow)) {
return null;
}
else {
tblDocument = eval(inWindow).document;
}
}*/
var curTbl = tblDocument.getElementById(inTbl);
if (curTbl.rows.length > 65000) {
alert('源行数不能大于65000行');
return false;
}
if (curTbl.rows.length <= 1) {
alert('数据源没有数据');
return false;
}
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 += " \t";
rows -= 1;
}
var tc = curTbl.rows[j].cells[i];
if (j > 0 && tc.hasChildNodes() && tc.firstChild.nodeName.toLowerCase() == "input") {
if (tc.firstChild.type.toLowerCase() == "checkbox") {
if (tc.firstChild.checked == true) {
outStr += "是" + "\t";
}
else {
outStr += "否" + "\t";
}
}
}
else {
outStr += " "+curTbl.rows[j].cells[i].innerText + "\t";
}
if (curTbl.rows[j].cells[i].colSpan > 1) {
for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {
outStr += "\t ";
}
}
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(inTbl + "不存在!");
}
return outStr;
}
function doFileExport(inName, inStr) {
var xlsWin = null;
if (!!document.all("glbHideFrm")) {
xlsWin = glbHideFrm;
}
else {
var width = 1;
var height = 1;
var openPara = "left=" + (window.screen.width + width / 2)
+ ",top=" + (window.screen.height/2 + height / 2)
+ ",scrollbars=no,width=" + width + ",height=" + height;
xlsWin = window.open("", "", openPara);
}
xlsWin.document.write(inStr);
xlsWin.document.close();
xlsWin.document.execCommand('Saveas', true, inName);
xlsWin.close();
}
分享到:
相关推荐
easyui datagrid 导出到Excel js实现 跨浏览器 资源真实可用
针对“ie、360、火狐等浏览器用js导出Excel”的需求,我们可以探讨一下相关的JavaScript技术以及处理不同浏览器差异的方法。 1. **JavaScript与Excel导出基础**: JavaScript是一种运行在客户端的脚本语言,它可以...
Javascript导出excel为xlsx格式,兼容IE6+和主流浏览器,下载下来直接可以使用。 其他javascript导出excel插件可看作者文章:https://blog.csdn.net/qq_21693027/article/details/80459677
本文将深入探讨如何使用纯JavaScript实现JSON格式数据到Excel文件的导出,同时支持多个Sheet页的导出。这个功能对于前端开发者来说,能够极大地提升用户体验,特别是在数据管理、分析和分享场景下。 首先,我们要...
js导出excel 支持各主流浏览器,支持指定文件名
js导出excel支持各种浏览器,本人亲测,支持IE 火狐 chrome 360 等多种常用浏览器
* 使用JavaScript实现打印和导出为Excel需要使用到 execwb 和 execCommand 方法,这两个方法可能会被浏览器的安全设置所阻止,我们需要确保浏览器的安全设置正确。 * 在实现打印时,我们需要使用样式表来设置打印的...
本文将深入探讨一个纯前端解决方案——Luckysheet,它允许用户在浏览器中直接编辑Excel,并实现文件的导入导出功能。 首先,我们要理解什么是Luckysheet。Luckysheet是一款基于JavaScript的开源项目,它提供了一个...
SheetJS提供了强大的API,允许我们在前端创建、修改和导出Excel文件。 以下是使用EasyUI和SheetJS实现数据导出的基本步骤: 1. 引入必要的资源:确保在HTML页面中引入EasyUI的CSS和JS文件,以及SheetJS的xlsx.full...
"JS导入导出Excel 兼容IE、Firefox、Chrome等浏览器"这一技术主题,聚焦于如何使用JavaScript(JS)在各种浏览器环境下处理Excel文件,包括古老的Internet Explorer(IE)、Firefox以及Chrome。下面我们将深入探讨这...
原生JavaScript实现的HTML...提供的`js浏览器导出Excel`资源应该包含了一个示例,你可以参考这个示例代码来理解并应用到自己的项目中。这种方法简单易用,适用于各种网页表格导出需求,极大地提高了前端开发的灵活性。
"Export2Excel.js导出excel"是一个针对这种情况的解决方案,它允许在Vue项目中实现前端直接导出Excel文件。下面将详细阐述这个功能的实现原理和涉及的技术。 首先,"Blob.js"是用于处理浏览器中的Blob对象的...
在JavaScript(JS)环境中,实现Excel导出是一项常见的需求,特别是在Web应用中处理大量数据时。前后端分离的开发模式下,前端需要处理用户交互,包括数据导出,这就需要我们借助一些库或者API来实现。以下是一些...
在IT领域,特别是Web开发中,使用JavaScript(简称JS)来实现打印功能和导出数据为Excel文件是非常常见的需求。这种需求通常出现在需要快速分享或存档网页数据的场景下,比如报表系统、数据分析平台等。下面将详细...
"js导出excel.zip"这个压缩包提供了一个解决方案,它结合了EasyUI和DataGrid组件,支持多表头和数据值的格式化功能,适用于QUICKUI和QUIGRID环境,生成的文件格式为.xls,即传统Microsoft Excel 97-2003格式。...
这个场景中提到的"js导出Excel和Word,不支持ie",指的是使用JavaScript在HTML页面前端实现Excel和Word文件的生成,但需要注意的是,这种方法可能不适用于已经过时的Internet Explorer浏览器。 1. **JavaScript导出...
layui数据表格导出Excel插件是一款为layui框架设计的实用工具,它允许用户方便地将layui数据表格中...总之,layui数据表格导出Excel插件提供了一个高效、便捷的解决方案,使得在layui项目中实现数据导出变得轻而易举。
在标题“gridview浏览器打印和导出excel”中,我们关注的是如何在浏览器端实现GridView的打印以及将GridView中的数据导出为Excel文件。 首先,让我们详细讨论GridView的浏览器打印功能。在ASP.NET中,通常通过...
下载过别人的没有支持ie11的,页面js导出表格,支持各浏览器,包括ie11
本文将深入探讨如何使用JavaScript和HTML来实现一个兼容所有浏览器的Excel导出功能。 首先,我们要理解IE浏览器和其他现代浏览器的区别。在IE浏览器中,由于其安全机制,我们不能直接生成Excel文件,而是需要将内容...