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 相关文章推荐
for 循环性能比较 提高for循环的效率
Mar 19 Javascript
JS的事件绑定深入认识
Jun 26 Javascript
浅谈js之字面量、对象字面量的访问、关键字in的用法
Nov 20 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
Jul 26 Javascript
bootstrap-Treeview实现级联勾选
Nov 23 Javascript
详解bootstrap导航栏.nav与.navbar区别
Nov 23 Javascript
解决vue build打包之后首页白屏的问题
Mar 06 Javascript
详解angular2.x创建项目入门指令
Oct 11 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
Sep 10 Javascript
原生js实现文件上传、下载、封装等实例方法
Jan 05 Javascript
vue项目创建步骤及路由router
Jan 14 Javascript
Jquery cookie插件实现原理代码解析
Aug 04 jQuery
用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
Protoss热键控制
2020/03/14 星际争霸
MySQL连接数超过限制的解决方法
2011/07/17 PHP
php无限极分类实现的两种解决方法
2013/04/28 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
2011/11/30 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
javascript性能优化之分时函数的介绍
2018/03/28 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
2019/05/28 jQuery
jQuery实现放大镜案例
2020/10/19 jQuery
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
Python学习之asyncore模块用法实例教程
2014/09/29 Python
Python的Django框架使用入门指引
2015/04/15 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
Python识别html主要文本框过程解析
2020/02/18 Python
用python制作个视频下载器
2021/02/01 Python
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
工程现场管理求职自荐信
2013/10/02 职场文书
大学生写自荐信的技巧
2014/01/08 职场文书
挖掘机司机岗位职责
2014/02/12 职场文书
倡议书范文
2014/04/16 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
庆七一活动简报
2015/07/20 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL