`

js导出excel的几种方式

阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3<html xmlns="http://www.w3.org/1999/xhtml">
  4<head>
  5    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
  6    <title>WEB页面导出为EXCEL文档的方法</title>
  7</head>
  8<body>
  9<table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0">
10    <tr>
11        <td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td>
12    </tr>
13    <tr>
14        <td>列标题1</td>
15        <td>列标题2</td>
16        <td>列标题3</td>
17        <td>列标题4</td>
18        <td>列标题5</td>
19    </tr>
20    <tr>
21        <td>aaa</td>
22        <td>bbb</td>
23        <td>ccc</td>
24        <td>ddd</td>
25        <td>eee</td>
26    </tr>
27    <tr>
28        <td>AAA</td>
29        <td>BBB</td>
30        <td>CCC</td>
31        <td>DDD</td>
32        <td>EEE</td>
33    </tr>
34    <tr>
35        <td>FFF</td>
36        <td>GGG</td>
37        <td>HHH</td>
38        <td>III</td>
39        <td>JJJ</td>
40    </tr> 
41</table>
42<input type="button" onclick="javascript:method1('tableExcel');" value="第一种方法导入到EXCEL">
43<input type="button" onclick="javascript:method2('tableExcel');" value="第二种方法导入到EXCEL">
44<input type="button" onclick="javascript:getXlsFromTbl('tableExcel',null);" value="第三种方法导入到EXCEL">
45<SCRIPT LANGUAGE="javascript">
46function method1(tableid) {//整个表格拷贝到EXCEL中
47    var curTbl = document.getElementById(tableid);
48    var oXL = new ActiveXObject("Excel.Application");
49    //创建AX对象excel
50    var oWB = oXL.Workbooks.Add();
51    //获取workbook对象
52        var oSheet = oWB.ActiveSheet;
53    //激活当前sheet
54    var sel = document.body.createTextRange();
55    sel.moveToElementText(curTbl);
56    //把表格中的内容移到TextRange中
57    sel.select();
58    //全选TextRange中内容
59    sel.execCommand("Copy");
60    //复制TextRange中内容 
61    oSheet.Paste();
62    //粘贴到活动的EXCEL中      
63    oXL.Visible = true;
64    //设置excel可见属性
65}
66function method2(tableid) //读取表格中每个单元到EXCEL中
67{
68    var curTbl = document.getElementById(tableid);
69    var oXL = new ActiveXObject("Excel.Application");
70    //创建AX对象excel
71    var oWB = oXL.Workbooks.Add();
72    //获取workbook对象
73    var oSheet = oWB.ActiveSheet;
74    //激活当前sheet
75    var Lenr = curTbl.rows.length;
76    //取得表格行数
77    for (i = 0; i < Lenr; i++)
78    {
79        var Lenc = curTbl.rows(i).cells.length;
80        //取得每行的列数
81        for (j = 0; j < Lenc; j++)
82        {
83            oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;
84            //赋值
85        }
86    }
87    oXL.Visible = true;
88    //设置excel可见属性
89}
90function getXlsFromTbl(inTblId, inWindow) {
91    try {
92        var allStr = "";
93        var curStr = "";
94        //alert("getXlsFromTbl");
95        if (inTblId != null && inTblId != "" && inTblId != "null") {
96            curStr = getTblData(inTblId, inWindow);
97        }
98        if (curStr != null) {
99            allStr += curStr;
100        }
101        else {
102            alert("你要导出的表不存在!");
103            return;
104        }
105        var fileName = getExcelFileName();
106        doFileExport(fileName, allStr);
107    }
108    catch(e) {
109        alert("导出发生异常:" + e.name + "->" + e.description + "!");
110    }
111}
112function getTblData(inTbl, inWindow) {
113    var rows = 0;
114    //alert("getTblData is " + inWindow);
115    var tblDocument = document;
116    if (!!inWindow && inWindow != "") {
117        if (!document.all(inWindow)) {
118            return null;
119        }
120        else {
121            tblDocument = eval(inWindow).document;
122        }
123    }
124    var curTbl = tblDocument.getElementById(inTbl);
125    var outStr = "";
126    if (curTbl != null) {
127        for (var j = 0; j < curTbl.rows.length; j++) {
128            //alert("j is " + j);
129            for (var i = 0; i < curTbl.rows[j].cells.length; i++) {
130                //alert("i is " + i);
131                if (i == 0 && rows > 0) {
132                    outStr += " \t";
133                    rows -= 1;
134                }
135                outStr += curTbl.rows[j].cells[i].innerText + "\t";
136                if (curTbl.rows[j].cells[i].colSpan > 1) {
137                    for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {
138                        outStr += " \t";
139                    }
140                }
141                if (i == 0) {
142                    if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {
143                        rows = curTbl.rows[j].cells[i].rowSpan - 1;
144                    }
145                }
146            }
147            outStr += "\r\n";
148        }
149    }
150    else {
151        outStr = null;
152        alert(inTbl + "不存在!");
153    }
154    return outStr;
155}
156function getExcelFileName() {
157    var d = new Date();
158    var curYear = d.getYear();
159    var curMonth = "" + (d.getMonth() + 1);
160    var curDate = "" + d.getDate();
161    var curHour = "" + d.getHours();
162    var curMinute = "" + d.getMinutes();
163    var curSecond = "" + d.getSeconds();
164    if (curMonth.length == 1) {
165        curMonth = "0" + curMonth;
166    }
167    if (curDate.length == 1) {
168        curDate = "0" + curDate;
169    }
170    if (curHour.length == 1) {
171        curHour = "0" + curHour;
172    }
173    if (curMinute.length == 1) {
174        curMinute = "0" + curMinute;
175    }
176    if (curSecond.length == 1) {
177        curSecond = "0" + curSecond;
178    }
179    var fileName = "leo_zhang" + "_" + curYear + curMonth + curDate + "_"
180            + curHour + curMinute + curSecond + ".csv";
181    //alert(fileName);
182    return fileName;
183}
184function doFileExport(inName, inStr) {
185    var xlsWin = null;
186    if (!!document.all("glbHideFrm")) {
187        xlsWin = glbHideFrm;
188    }
189    else {
190        var width = 6;
191        var height = 4;
192        var openPara = "left=" + (window.screen.width / 2 - width / 2)
193                + ",top=" + (window.screen.height / 2 - height / 2)
194                + ",scrollbars=no,width=" + width + ",height=" + height;
195        xlsWin = window.open("", "_blank", openPara);
196    }
197    xlsWin.document.write(inStr);
198    xlsWin.document.close();
199    xlsWin.document.execCommand('Saveas', true, inName);
200    xlsWin.close();
201}
202</SCRIPT>
203</body>
204</html>
分享到:
评论

相关推荐

    js操作table导出excel

    总结,JavaScript操作HTML表格导出Excel主要涉及以下几个步骤: 1. 引入`FileSaver.js`库。 2. 创建HTML表格并填充数据。 3. 使用JavaScript获取表格数据并转换为CSV格式。 4. 创建Blob对象,并使用`saveAs`方法保存...

    js导出excel的方法

    本文将详细介绍几种使用JavaScript实现导出数据到Excel的方法,包括利用ActiveX对象的方式以及纯JavaScript的方式。 #### 方法一:使用ActiveX对象(仅适用于IE浏览器) 此方法基于Internet Explorer提供的ActiveX...

    lodop导出ExcelDemo

    【lodop导出ExcelDemo】是一个基于LODOP技术实现的JavaScript示例,它展示了如何通过LODOP组件将网页中的数据导出为Excel文件。这个功能在许多Web应用程序中非常实用,允许用户方便地保存和处理数据。下面将详细阐述...

    ext实现导出excel的功能。

    在EXTJS这个强大的JavaScript框架中,实现导出Excel功能是一项常见的需求。EXTJS提供了一种高效的方法来将数据导出到Excel格式,使得用户能够方便地处理和分析数据。在这个场景下,我们可以从以下几个关键知识点入手...

    Ext Grid 导出Excel

    总结来说,"Ext Grid 导出Excel"这个话题涵盖了从JavaScript数据结构到Excel文件格式转换的过程,涉及到的主要技术有Ext JS的Grid和Store组件,以及第三方库SheetJS。这个过程对于那些需要提供数据导出功能的Web应用...

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

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

    easyui导出excel工具

    总结,EasyUI的datagrid导出Excel工具类为开发者提供了一种便捷的方式,通过前后端配合,将网页中的数据快速转换成Excel文件,满足了用户对数据管理的需求。在实际应用中,需要注意数据安全和性能优化,确保功能的...

    excel-gen.js 导出excel 功能

    标题 "excel-gen.js 导出excel 功能" 描述了一个JavaScript库,用于生成Excel文件,而涉及的文件列表揭示了这个过程可能依赖于几个关键组件。让我们深入了解一下这些技术及其在生成Excel文件中的作用。 首先,`...

    jxl导出excel加水印.zip

    导出Excel并添加水印的过程可以分为以下几个步骤: 1. 创建`WritableWorkbook`对象:`WritableWorkbook`是`jxl`库中的核心类,用于表示一个可写的Excel工作簿。我们可以使用`Workbook.createWorkbook()`方法创建一...

    Ext Grid导出Excel

    总的来说,“Ext Grid导出Excel”涉及了前端JavaScript编程、数据处理、文件格式理解以及可能的服务器端协作。理解并掌握这些技术,可以帮助开发者提供更强大的数据工具,满足用户对数据管理的需求。

    aaaaa.rar_JavaScript Excel_Table_table 导出excel_导出excel

    导出Excel的过程通常分为以下几个步骤: 1. **获取表格数据**:使用JavaScript的DOM API,如`document.getElementById`或`querySelector`来获取表格元素。然后遍历表格的所有行和列,收集数据。 2. **转换数据**:...

    JS导出word、excel

    在实际应用中,JavaScript导出Word和Excel通常依赖于一些库,如jsPDF用于生成PDF,然后通过转换工具将PDF转为Word,或者使用xlsx库直接处理Excel文件。另外,Puppeteer是一个流行的浏览器自动化工具,可以通过控制...

    Html导出Excel文件(兼容所有浏览器)

    因此,为了实现全浏览器兼容,我们需要考虑以下几种策略: 1. 使用`window.navigator.msSaveBlob`:这是Microsoft Edge和Internet Explorer支持的一个特有方法,可以直接保存Blob对象。 2. 创建一个隐藏的`iframe`...

    导出Excel功能插件 xlsx.full.min.js

    在前端开发中,导出数据到Excel是一种常见的需求,特别是在数据可视化、数据分析或者报表生成的场景下。"xlsx.full.min.js" 是一个专门用于实现这个功能的JavaScript库,它允许开发者在网页上轻松地将数据转换为...

    二进制流导出excel(兼容IE8以上)

    1. **二进制流**:二进制流是计算机处理数据的一种方式,它以二进制形式表示和传输数据。在导出Excel时,数据被转换为二进制格式,以便于浏览器直接下载和解析,而不是以文本或HTML的形式。 2. **Excel导出**:这个...

    struts1.2+extjs+导出excel项目

    Struts1.2 + ExtJS + 导出Excel项目是一个基于Web的应用开发框架组合,用于构建企业级的Java应用程序。这个项目的重点在于整合Struts1.2(一个经典的MVC框架)与ExtJS(一个富客户端JavaScript库)来提供用户友好的...

    Excel导出,js实现

    本文将详细介绍如何使用JavaScript(简称JS)来实现网页端的数据导出至Excel的功能。 #### 基本原理 要实现Excel导出功能,我们需要理解几个关键概念: 1. **MIME类型**:在HTTP协议中,每种文件类型都有对应的...

    ecshop 2.7 + 添加订单导出excel功能

    3. **Excel文件生成**:有几种方式可以生成Excel文件,例如使用PHP的`PHPExcel`库,这是一个广泛使用的第三方库,可以创建、读取和修改Excel文件。使用此库,你可以创建一个新的工作簿,添加工作表,然后将处理好的...

    Grid导出到Excel例子(源码+注释)

    导出Grid到Excel涉及到以下几个关键步骤: 1. **数据准备**:确保Grid中的数据已经加载并可供导出。这通常涉及到从服务器获取数据,或者使用本地数据源。数据应该是一个二维数组,每一行代表一个记录,每一列对应一...

    简单实用网页表格数据导出Excel电子表格文件jQuery插件

    本项目"简单实用网页表格数据导出Excel电子表格文件jQuery插件"正是为了解决这一问题。 首先,我们来探讨jQuery的核心概念。jQuery简化了JavaScript的DOM操作,提供了统一的API来选择元素、添加事件处理程序、执行...

Global site tag (gtag.js) - Google Analytics