Javascript 通用Excel导出函数
1 //导出excel 2 function exportExcel(DivID,SheetName,DeleteColStr){ 3 //先声明Excel插件、Excel工作簿等对像 4 var jXls, myWorkbook, myWorksheet; 5 try { 6 //插件初始化失败时作出提示 7 jXls = new ActiveXObject('Excel.Application'); 8 }catch (e) { 9 alert("无法启动Excel!\n\n如果您确信您的电脑中已经安装了Excel,"+"那么请调整IE的安全级别。\n\n具体操作:\n\n"+"工具 → Internet选项 → 安全 → 自定义级别 → 对没有标记为安全的ActiveX进行初始化和脚本运行 → 启用"); 10 return false; 11 } 12 13 //不显示警告 14 jXls.DisplayAlerts = false; 15 16 //创建AX对象excel 17 myWorkbook = jXls.Workbooks.Add(); 18 myWorkbook.Worksheets(3).Delete();//删除第3个标签页(可不做) 19 myWorkbook.Worksheets(2).Delete();//删除第2个标签页(可不做) 20 21 //获取DOM对像 22 var curTb = document.getElementById(DivID); 23 24 //获取当前活动的工作薄(即第一个) 25 myWorksheet = myWorkbook.ActiveSheet; 26 27 //设置工作薄名称 28 myWorksheet.name=SheetName; 29 30 //获取BODY文本范围 31 var sel = document.body.createTextRange(); 32 33 var TempHtml = curTb.innerHTML; 34 var ExcelRegForLink = /<a\b[^>]*>([^<]*)<\/a>/gi; 35 var TempHtml2 = TempHtml.replace(ExcelRegForLink,"$1"); 36 curTb.innerHTML = TempHtml2; 37 //alert(TempHtml2); 38 //将文本范围移动至DIV处 39 sel.moveToElementText(curTb); 40 41 //选中Range 42 sel.select(); 43 44 //清空剪贴板 45 window.clipboardData.setData('text',''); 46 47 //将文本范围的内容拷贝至剪贴板 48 sel.execCommand("Copy"); 49 // var ClipBoardStr = window.clipboardData.getData("text"); 50 // var ExcelRegForLink = /<a\b[^>]*>([^<]*)<\/a>/gi; 51 // ClipBoardStr = ClipBoardStr.replace(ExcelRegForLink,"$1"); 52 // window.clipboardData.setData("text",ClipBoardStr); 53 //将内容粘贴至工作簿 54 myWorksheet.Paste(); 55 //删除指定列 56 if (""!=DeleteColStr) { 57 var DeleteColsArr = DeleteColStr.split(","); 58 for (var ColNum in DeleteColsArr) { 59 var NowColNum=parseInt(DeleteColsArr[parseInt(ColNum)]); 60 myWorksheet.Columns(NowColNum).Delete(); 61 } 62 } 63 64 //打开工作簿 65 jXls.Visible = true; 66 67 //清空剪贴板 68 window.clipboardData.setData('text',''); 69 jXls = null;//释放对像 70 myWorkbook = null;//释放对像 71 myWorksheet = null;//释放对像 72 document.selection.empty();//取消选中 73 curTb.innerHTML = TempHtml; 74 }
使用方法:
<Div Id="MainDiv"> 打印区域 </Div>
调用方法:
exportExcel('MainDiv','Excel标题‘,'要去除列列表');
如:输出成为 Excel表 测试Excel,并去除其中的11,12列:
exportExcel('MainDiv','测试Excel','12,11');