js导出Excel

来源:互联网 发布:linux 运维之道第2版 编辑:程序博客网 时间:2024/06/06 01:38
 
1.原来直接可以使用js来导出Excel,这个世界简直太奇妙了!把网页中的一个表格(含表格中的内容)复制到Excel的一个Sheet中,具体步骤如下一、        创建一个含有表格的网页1、网页代码如下<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>利用Jscrīpt复制网页中的表格到Excel中</title><scrīpt language="javascrīpt" src="dataToExcel.js"></scrīpt><style type="text/css"><!--.STYLE2 {color: #000000}--></style></head><body><table width="307" border="1" cellspacing="0" cellpadding="0" id="tableToExcel" name="tableName"><tr bgcolor="#99CCCC">    <td width="66" rowspan="4" bgcolor="#33FF99">吉林的长春</td>    <td width="67" rowspan="4" bgcolor="#33FF99">辽宁的沈阳</td>    <td width="94" rowspan="4" bgcolor="#33FF99">黑龙江的哈尔滨</td>    <td width="30" rowspan="4" bgcolor="#33FF99">北京</td>    <td width="38" bgcolor="#66CC99">海淀</td></tr><tr bgcolor="#99CCCC">    <td bgcolor="#66CC99">吉林-长春</td></tr><tr bgcolor="#99CCCC">    <td bgcolor="#66CC99">辽宁-沈阳</td></tr><tr bgcolor="#99CCCC">    <td bgcolor="#66CC99">黑龙江-哈尔滨</td></tr><tr bgcolor="#99CCCC">    <td colspan="5">演示javascrīpt对表格copy的处理过程(推荐) </td></tr><tr bgcolor="#99CCCC">    <td colspan="5"><label>      <div align="center">        <input name="textfield" type="text" value="单行文本框控件" size="30"/>        </div>    </label></td></tr></table><br>                  <input type="submit" name="Submit3" value="点击复制表格到Excel中" ōnclick="CellToExcel(cellToExcel)" /></body></html>2、代码说明CellToExcel()为JS文件中定义的函数(关于JS文件稍后加以说明),tableToExcel为表格的id。二、含有复制功能的JS文件的创建1、dataToExcel.js文件代码如下// Javascrīpt Document// 杀Excel进程使用此变量var idTmr = "";// 函数功能:复制表格到Excel中// 参    数:tableID 表的idfunction CellToTable(tableID){        try        {                  // 加载ActiveX控件,获取Excel句柄                  var exApp = new ActiveXObject("Excel.Application");                // 创建一个Excel文件                var ōWB = exApp.WorkBooks.add();                // 获取sheet1句柄CA                var exSheet = exApp.ActiveWorkBook.WorkSheets(1);              // 设置sheet1的名称               exSheet.name="演示复制表格到Excel中";                // copy指定的表格                var sel=document.body.createTextRange();            sel.moveToElementText(tableID);            sel.select();            sel.execCommand("Copy");                // 粘贴到sheet中                exSheet.Paste();                // 弹出保存对话框,保存Excel文件                 exApp.Save();                // 退出Excel实例                exApp.Quit();                exApp = null;                // 调用Cleanup()进行垃圾回收                idTmr = window.setInterval("Cleanup();",10);        }catch(Exception)        {                //用户点击保存对话框中的取消按钮时会发生异常        }}// 函数功能:杀掉Excel进程function Cleanup() {          window.clearInterval(idTmr);          CollectGarbage();}2、代码说明        以上的代码每行都有注释,不再一一加以说明,其中Cleanup()中调用的CollectGarbage();是JS提供的垃圾回收函数。三、        多个表格复制到Excel中同一个sheet中1、        应注意的问题设置当前sheet中的焦点,以避免多次粘贴出现覆盖现象2、代码exSheet.Cells(行,列).Select();复制第二张表时,要确定焦点所在的行,通过var table = document.all. cellToExcel; //表格的IDvar row= table.rows.length;//表格的行var col = table.rows(0).cells.length;//表格的列获取表格的行列,然后调用exSheet.Cells(row,1).Select();使焦点定位到表格第row行,第1列,然后执行粘贴功能的代码exSheet.Paste();,完成粘贴功能,三个以上的表格的复制,依次类推。四、关于sheet的说明代码中var ōWB = exApp.WorkBooks.add();这句话执行完后,Excel中默认会有三个sheet,当用户如果需要更多的sheet,要做如下的处理oWB .Sheets.Add();添加sheet,此代码每执行一次,添加一个sheet,用户可更具需要来添加sheet的数量。 from :http://jiangadmin1128.blog.163.com/blog/static/4627275120093761428720/