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/