js导入导出excel(实例代码)


Posted in Javascript onNovember 25, 2013

导入:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
     <title>Untitled Page</title>
</head>
<script language="javascript" type="text/javascript">
function importXLS(fileName)
{  
     objCon = new ActiveXObject("ADODB.Connection");
     objCon.Provider = "Microsoft.Jet.OLEDB.4.0";
     objCon.ConnectionString = "Data Source=" + fileName + ";Extended Properties=Excel 8.0;";
     objCon.CursorLocation = 1;
     objCon.Open;
     var strQuery;
     //Get the SheetName
     var strSheetName = "Sheet1$";
     var rsTemp =   new ActiveXObject("ADODB.Recordset");
     rsTemp = objCon.OpenSchema(20);
     if(!rsTemp.EOF)
     strSheetName = rsTemp.Fields("Table_Name").Value;
     rsTemp = null;
     rsExcel =   new ActiveXObject("ADODB.Recordset");
     strQuery = "SELECT * FROM [" + strSheetName + "]";
     rsExcel.ActiveConnection = objCon;
     rsExcel.Open(strQuery);
     while(!rsExcel.EOF)
     {
     for(i = 0;i<rsExcel.Fields.Count;++i)
     {
     alert(rsExcel.Fields(i).value);
     }
     rsExcel.MoveNext; 
     }
     // Close the connection and dispose the file
     objCon.Close;
     objCon =null;
     rsExcel = null;
}
</script>
</head>
<body>
<input type="file" id="f" />
<input type="button" id="b" value="import" onclick="if(f.value=='')alert('请选择xls文件');else importXLS(f.value)" />
</body>
</html>

导出:
function AutomateExcel()
{

// Start Excel and get Application object.
var oXL = new ActiveXObject("Excel.Application");


oXL.Visible = true;


// Get a new workbook.
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;


// Add table headers going cell by cell.
oSheet.Cells(1, 1).Value = "First Name";
oSheet.Cells(1, 2).Value = "Last Name";
oSheet.Cells(1, 3).Value = "Full Name";
oSheet.Cells(1, 4).Value = "Salary";


// Format A1:D1 as bold, vertical alignment = center.
oSheet.Range("A1", "D1").Font.Bold = true;
oSheet.Range("A1", "D1").VerticalAlignment = -4108; //xlVAlignCenter


// Create an array to set multiple values at once.


// Fill A2:B6 with an array of values (from VBScript).
oSheet.Range("A2", "B6").Value = CreateNamesArray();


// Fill C2:C6 with a relative formula (=A2 & " " & B2).
var oRng = oSheet.Range("C2", "C6");
oRng.Formula = "=A2 & " " & B2";


// Fill D2:D6 with a formula(=RAND()*100000) and apply format.
oRng = oSheet.Range("D2", "D6");
oRng.Formula = "=RAND()*100000";
oRng.NumberFormat = "$0.00";


// AutoFit columns A:D.
oRng = oSheet.Range("A1", "D1");
oRng.EntireColumn.AutoFit();


// Manipulate a variable number of columns for Quarterly Sales Data.
DispalyQuarterlySales(oSheet);


// Make sure Excel is visible and give the user control
// of Excel's lifetime.
oXL.Visible = true;
oXL.UserControl = true;
}<HTML>
<HEAD>
<TITLE>将页面中指定表格的数据导入到Excel中</TITLE>
<SCRIPT LANGUAGE="javascript">
<!--
function AutomateExcel()
{


var oXL = new ActiveXObject("Excel.Application"); //创建应该对象
var oWB = oXL.Workbooks.Add();//新建一个Excel工作簿
var oSheet = oWB.ActiveSheet;//指定要写入内容的工作表为活动工作表
var table = document.all.data;//指定要写入的数据源的id
var hang = table.rows.length;//取数据源行数
var lie = table.rows(0).cells.length;//取数据源列数


// Add table headers going cell by cell.
for (i=0;i<hang;i++){//在Excel中写行
for (j=0;j<lie;j++){//在Excel中写列
//定义格式
oSheet.Cells(i+1,j+1).NumberFormatLocal = "@";
//!!!!!!!上面这一句是将单元格的格式定义为文本
oSheet.Cells(i+1,j+1).Font.Bold = true;//加粗
oSheet.Cells(i+1,j+1).Font.Size = 10;//字体大小
oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText;//向单元格写入值
}
}
oXL.Visible = true;
oXL.UserControl = true;
}
//-->
</SCRIPT>
</HEAD>


<BODY>
<table border="0" width="300" id="data" bgcolor="black" cellspacing="1">
<tr bgcolor="white">
<td>编号</td>
<td>姓名</td>
<td>年龄</td>
<td>性别</td>
</tr>
<tr bgcolor="white">
<td>0001</td>
<td>张三</td>
<td>22</td>
<td>女</td>
</tr>
<tr bgcolor="white">
<td>0002</td>
<td>李四</td>
<td>23</td>
<td>男</td>
</tr>
</table>
<input type="button" name="out_excel" onclick="AutomateExcel();" value="导出到excel">
</BODY>
</HTML>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!-- 导出excle的三个方法 要把ie浏览器的"对没有标记为安全的 ActiveX 控件进行初始化和脚本运行 设置为提示或启用" --> 
<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>             </td> 
            <td> 
                ccc 
            </td> 
            <td> 
                ddd 
            </td> 
            <td> 
                eee 
            </td> 
        </tr> 
        <tr> 
            <td> 
                AAA 
            </td> 
            <td> 
            </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 = ""; 
                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; 
            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++) { 
                    for (var i = 0; i < curTbl.rows[j].cells.length; 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"; 
            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>
Javascript 相关文章推荐
Jquery插件之打造自定义的select标签
Nov 30 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
May 07 Javascript
jquery单行文字向上滚动效果示例
Mar 06 Javascript
三种取消选中单选框radio的方法
Sep 09 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
Dec 05 Javascript
node.js中的path.isAbsolute方法使用说明
Dec 08 Javascript
jquery实现textarea输入框限制字数的方法
Jan 15 Javascript
javascript中使用正则表达式清理table样式的代码
Apr 01 Javascript
javascript 动态修改css样式方法汇总(四种方法)
Aug 27 Javascript
原生js实现轮播图
Feb 27 Javascript
Node.js EventEmmitter事件监听器用法实例分析
Jan 07 Javascript
10种JavaScript最常见的错误(小结)
Jun 21 Javascript
用javascript添加控件自定义属性解析
Nov 25 #Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
Nov 25 #Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
Nov 25 #Javascript
js动态添加删除,后台取数据(示例代码)
Nov 25 #Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
Nov 25 #Javascript
jQuery中获取checkbox选中项等操作及注意事项
Nov 24 #Javascript
javascript 弹出的窗口返回值给父窗口具体实现
Nov 23 #Javascript
You might like
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
vue注册组件的几种方式总结
2018/03/08 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
[00:36]DOTA2风云人物相约完美“圣”典 12月17日不见不散
2016/11/30 DOTA
实例说明Python中比较运算符的使用
2015/05/13 Python
Linux下为不同版本python安装第三方库
2016/08/31 Python
基于python中的TCP及UDP(详解)
2017/11/06 Python
Python多线程threading和multiprocessing模块实例解析
2018/01/29 Python
python实现简单遗传算法
2018/03/19 Python
python逆序打印各位数字的方法
2018/06/25 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
python aiohttp的使用详解
2019/06/20 Python
python3 反射的四种基本方法解析
2019/08/26 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
西班牙语在线票务市场:SuperBoletería
2019/06/10 全球购物
打架检讨书100字
2014/01/19 职场文书
美容院考勤制度
2014/01/30 职场文书
统计系教授推荐信
2014/02/28 职场文书
通信工程专业求职信
2014/06/04 职场文书
服务行业演讲稿
2014/09/02 职场文书
出国留学英文自荐信
2015/03/25 职场文书
导游词之山西-五老峰
2019/10/07 职场文书
Nginx配置使用详解
2022/07/07 Servers