`
sd8089730
  • 浏览: 258573 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

Js导出Excel(需要更改安全级别)

 
阅读更多
<!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=gb2312"/> 
      <title>WEB页面导出为EXCEL文档的方法</title> 
  </head> 
  <body> 
  <table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0"> 
    <tr> 
        <td colspan="5" align="center">WEB页面导出为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> 
<input type="button" onclick="javascript:method1('tableExcel');" value="第一种方法导入到EXCEL"> 
<input type="button" onclick="javascript:method2('tableExcel');" value="第二种方法导入到EXCEL"> 
<input type="button" onclick="javascript:getXlsFromTbl('tableExcel',null);" value="第三种方法导入到EXCEL"> 
<SCRIPT LANGUAGE="javascript"> 
function method1(tableid) {//整个表格拷贝到EXCEL中 
    var curTbl = document.getElementById(tableid); 
    var oXL = new ActiveXObject("Excel.Application"); 
    //创建AX对象excel 
    var oWB = oXL.Workbooks.Add(); 
    //获取workbook对象 
        var oSheet = oWB.ActiveSheet; 
    //激活当前sheet 
    var sel = document.body.createTextRange(); 
    sel.moveToElementText(curTbl); 
    //把表格中的内容移到TextRange中 
    sel.select(); 
    //全选TextRange中内容 
    sel.execCommand("Copy"); 
    //复制TextRange中内容  
    oSheet.Paste(); 
    //粘贴到活动的EXCEL中       
    oXL.Visible = true; 
    //设置excel可见属性 
} 
function method2(tableid) //读取表格中每个单元到EXCEL中 
{ 
    var curTbl = document.getElementById(tableid); 
    var oXL = new ActiveXObject("Excel.Application"); 
    //创建AX对象excel 
    var oWB = oXL.Workbooks.Add(); 
    //获取workbook对象 
    var oSheet = oWB.ActiveSheet; 
    //激活当前sheet 
    var Lenr = curTbl.rows.length; 
    //取得表格行数 
    for (i = 0; i < Lenr; i++) 
    { 
        var Lenc = curTbl.rows(i).cells.length; 
        //取得每行的列数 
        for (j = 0; j < Lenc; j++) 
        { 
            oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText; 
            //赋值 
        } 
    } 
    oXL.Visible = true; 
    //设置excel可见属性 
} 
function getXlsFromTbl(inTblId, inWindow) { 
    try { 
        var allStr = ""; 
        var curStr = ""; 
        //alert("getXlsFromTbl"); 
        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 = 0; 
    //alert("getTblData is " + inWindow); 
    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 = 0; j < curTbl.rows.length; j++) { 
            //alert("j is " + j); 
            for (var i = 0; i < curTbl.rows[j].cells.length; i++) { 
                //alert("i is " + i); 
                if (i == 0 && rows > 0) { 
                    outStr += " \t"; 
                    rows -= 1; 
                } 
                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 getExcelFileName() { 
    var d = new Date(); 
    var curYear = d.getYear(); 
    var curMonth = "" + (d.getMonth() + 1); 
    var curDate = "" + d.getDate(); 
    var curHour = "" + d.getHours(); 
    var curMinute = "" + d.getMinutes(); 
    var curSecond = "" + d.getSeconds(); 
    if (curMonth.length == 1) { 
        curMonth = "0" + curMonth; 
    } 
    if (curDate.length == 1) { 
        curDate = "0" + curDate; 
    } 
    if (curHour.length == 1) { 
        curHour = "0" + curHour; 
    } 
    if (curMinute.length == 1) { 
        curMinute = "0" + curMinute; 
    } 
    if (curSecond.length == 1) { 
        curSecond = "0" + curSecond; 
    } 
    var fileName = "leo_zhang" + "_" + curYear + curMonth + curDate + "_" 
            + curHour + curMinute + curSecond + ".csv"; 
    //alert(fileName); 
    return fileName; 
} 
function doFileExport(inName, inStr) { 
    var xlsWin = null; 
    if (!!document.all("glbHideFrm")) { 
        xlsWin = glbHideFrm; 
    } 
    else { 
        var width = 6; 
        var height = 4; 
        var openPara = "left=" + (window.screen.width / 2 - width / 2) 
                + ",top=" + (window.screen.height / 2 - height / 2) 
                + ",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(); 
} 
</SCRIPT> 
</body> 
</html> 

 

分享到:
评论

相关推荐

    vue.js导出Excel所需要的JS文件 修改当前为当前日期

    下面我们将详细探讨如何利用这两个库在Vue.js项目中导出Excel文件,并重点关注如何将当前日期添加到导出的文件名中。 首先,Blob.js是一个JavaScript库,用于在浏览器中创建和操作Blob对象。Blob是Binary Large ...

    vue导出excel并修改表头样式

    在Vue.js应用中导出Excel并修改表头样式是一个常见的需求,这主要涉及到前端数据处理、Excel文件生成以及样式定制等方面的知识。以下是一份详细的技术指南,帮助你理解和实现这个功能。 1. **Vue.js基础知识**:Vue...

    js导出Excel 、Word [超实用][自动保存样式]

    总结一下,JavaScript导出Excel和Word的关键步骤包括: 1. 获取Table数据和样式信息。 2. 将数据转化为适合Excel或Word的格式。 3. 使用库(如SheetJS、docx)生成相应格式的文件。 4. 创建下载链接或通过服务器完成...

    导出Excel功能,导出Excel功能,导出Excel功能

    在IT领域,导出Excel功能是一项非常常见的需求,特别是在数据分析、报表生成以及数据共享等场景中。Excel作为一款强大的电子表格软件,因其易用性、灵活性和强大的计算能力,成为了企业和个人处理数据的首选工具。...

    easyui+数据导出为Excel

    SheetJS提供了强大的API,允许我们在前端创建、修改和导出Excel文件。 以下是使用EasyUI和SheetJS实现数据导出的基本步骤: 1. 引入必要的资源:确保在HTML页面中引入EasyUI的CSS和JS文件,以及SheetJS的xlsx.full...

    JS导入导出Excel 兼容IE、Firefox、Chrome等浏览器

    "JS导入导出Excel 兼容IE、Firefox、Chrome等浏览器"这一技术主题,聚焦于如何使用JavaScript(JS)在各种浏览器环境下处理Excel文件,包括古老的Internet Explorer(IE)、Firefox以及Chrome。下面我们将深入探讨这...

    前端导出 excel ,设置字体,列宽,行高,对其方式,合并单元格等效果

    总结来说,前端导出Excel涉及到数据转换、样式设置和文件生成等多个步骤。使用像`SheetJS`这样的库可以帮助简化这一过程,但正确配置和优化仍然是关键。在实际项目中,确保按照需求正确设置字体、列宽、行高、对齐...

    前端导出Excel table2excel

    在实现前端导出Excel时,需要注意兼容性问题。由于这个操作是在客户端完成的,所以需要确保用户的浏览器支持FileSaver API,这是一个允许在客户端保存文件的JavaScript接口。对于不支持此API的老版本浏览器,可能...

    纯前端 JS脚本 导出excel 可动态添加数据

    "纯前端 JS脚本 导出excel 可动态添加数据"这一主题,聚焦于如何利用JavaScript在浏览器环境中实现Excel文件的生成与动态数据填充,无需借助服务器端处理。这一技术在数据分析、报表生成以及用户交互场景中具有广泛...

    jxl导出excel加水印.zip

    本教程将详细介绍如何使用`jxl`库在导出Excel时添加水印,以及涉及的核心类`WritableWorkbook`、`WritableSheet`和`WritableCellFormat`。 `jxl`库提供了一套完整的API来操作Excel文件,包括创建新的工作簿、添加...

    轻松解决datagrid-export.js的导出excel数字变科学计数法的问题

    有个项目需要用到jquery 的easyui和导出excel,发现官方下载的datagrid-export.js有几处bug,例如导出的excel格式,长数字会默认按科学计数法显示或没了零开头的数字,不符合所见即所得要求。 首先说明前提条件,...

    纯js导出EXCEL

    纯js导出EXCEL,生成的伪xls文件 支持中文 1,我用谷歌浏览器下载没有问题,可能会碰见下载文件没有后缀名的问题,另存就可以 2,还有另一种解决方案,就是修改base64编码,使其支持中文,下篇文件会列出

    js导出Exsl自定义文件,可设置宽度与高度

    如果需要在跨域环境下导出Excel,你可能需要借助服务器端的帮助。 总结一下,利用`xlsx.core.min.js`库,我们可以方便地在JavaScript中生成自定义的Excel文件,包括设置表格的宽度和高度。这个库的灵活性使得在前端...

    导出EXCEL,支持中文

    "导出EXCEL,支持中文"这个主题主要关注如何在纯JavaScript环境中生成包含中文字符的Excel文件。在描述中提到了两种解决方法,下面我们将详细探讨这些方法及其相关知识点。 首先,纯JavaScript生成的Excel文件通常是...

    Extjs4.2前台导出Excel(多次导出失败bug已修改)

    总之,使用Extjs4.2进行前台导出Excel是一项实用的功能,但需要注意处理好前端的资源管理、文件命名、数据同步和错误处理等问题,以提供良好的用户体验。通过对这些细节的优化,可以避免常见的问题,使得导出功能...

    js将table数据导出到excel

    js导出excel,若果导不出excel,修改一下浏览器的安全级别到最低试试。

    ExtJs6 导出excel(包含分组、分组合计行、二重表头)

    在标题和描述中提到的“导出Excel”功能,就是指将数据网格中的数据导出为Microsoft Excel格式,以便用户可以进一步分析或存储数据。 在ExtJS6中,数据网格可以配置分组、分组合计行以及二重表头,这些都是增强数据...

    Kendo UI框架grid的Excel导出功能改进js代码

    Kendo UI框架提供了强大的Excel导出功能,通过Grid的saveAsExcel能方便地导出Grid中的数据,而且格式美观大方,使用起来也非常方便。但是在实际使用中不是很理想,主要有以下两个问题: 1. 导出的列数据是原始值 ...

    导出excel代码

    在IT领域,"导出Excel代码"通常是指在编程环境中编写代码来生成、操作或处理Microsoft Excel文件。Excel因其强大的数据处理和分析能力而被广泛使用,特别是在数据分析、报告生成和自动化任务中。当我们谈论“导出...

    asp.net+Ajax实现Excel文件导出

    本篇文章将详细讲解如何利用ASP.NET与Ajax技术实现在Web应用中导出Excel文件。 首先,ASP.NET是Microsoft开发的一个用于构建动态网站、Web应用程序和服务的框架。它基于.NET Framework,提供了丰富的服务器控件、...

Global site tag (gtag.js) - Google Analytics