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 相关文章推荐
通过action传过来的值在option获取进行验证的方法
Nov 14 Javascript
使用js如何实现全选与全不选
Dec 30 Javascript
js中自定义方法实现停留几秒sleep
Jul 11 Javascript
推荐9款炫酷的基于jquery的页面特效
Dec 07 Javascript
浅析JS获取url中的参数实例代码
Jun 14 Javascript
AngularJS中的包含详细介绍及实现示例
Jul 28 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
Dec 11 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
May 07 Javascript
vue项目刷新当前页面的三种方法
Dec 04 Javascript
js实现树形数据转成扁平数据的方法示例
Feb 27 Javascript
Nuxt页面级缓存的实现
Mar 09 Javascript
Vue数组响应式操作及高阶函数使用代码详解
Aug 01 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
php实现微信公众平台发红包功能
2018/06/14 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
BootStrap Fileinput上传插件使用实例代码
2017/07/28 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
Python 转义字符详细介绍
2017/03/21 Python
python访问抓取网页常用命令总结
2017/04/11 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
PyQt 如何创建自定义QWidget
2021/03/24 Python
党员检讨书
2014/10/13 职场文书
2014年共青团工作总结
2014/12/10 职场文书
授权委托书
2015/01/28 职场文书
2015年暑假生活总结
2015/07/13 职场文书
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript
javascript对象3个属性特征
2021/11/17 Javascript
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle