JS 合并列,导出excel,word
2013-05-22 20:01
447 查看
export.js
//传入一个table的id,将table的全部内容导出excel文件 function AutomateExcel(objTable) { // Start Excel and get Application object. var oXL = new ActiveXObject("Excel.Application"); // Get a new workbook. var oWB = oXL.Workbooks.Add(); var oSheet = oWB.ActiveSheet; var hang = objTable.rows.length; var lie = objTable.rows(0).cells.length; // Add table headers going cell by cell. for (var i=0;i<hang;i++) { for (var j=0;j<lie;j++) { oSheet.Cells(i+1,j+1).value = objTable.rows(i).cells(j).innerText; } } oXL.Visible = true; oXL.UserControl = true; } //描述:将固定格式的xml文件导出excel文件(有) //strXml:传入的xml字符串,一般为dataset直接getxml得到的就可以; //xmlField:要导入的字段和对应的中文名称,格式如下: //var xmlField="<FIELDLIST><TITLE>主题</TITLE><KEYWORD>关键词</KEYWORD><TYPE>报题来源</TYPE><CREATE_DATE>创建日期</CREATE_DATE><COLUMN_NAME>所属栏目</COLUMN_NAME></FIELDLIST>"; function ExpXmlToExcel(strXml,xmlField) { //导入xml字符串 var xmlDoc = new XmlDoc(); xmlDoc.loadXML(strXml); var nodesList = xmlDoc.documentElement.childNodes; //导入字段列表; var xmlDocField = new XmlDoc(); xmlDocField.loadXML(xmlField); var fieldList = xmlDocField.documentElement.childNodes; // Start Excel and get Application object. var oXL = new ActiveXObject("Excel.Application"); // Get a new workbook. var oWB = oXL.Workbooks.Add(); var oSheet = oWB.ActiveSheet; var hang = nodesList.length; var lie = fieldList.length; //插入表头 for (var j=0;j<lie;j++) { oSheet.Cells(1,j+1).value =fieldList[j].text; } // Add table headers going cell by cell. for (var i=0;i<hang;i++) { for (var j=0;j<lie;j++) { oSheet.Cells(i+2,j+1).value = nodesList[i].selectSingleNode(fieldList[j].nodeName).text; } } oXL.Visible = true; oXL.UserControl = true; } //指定页面区域内容导入Word(有) //eDiv:要导出具体内容的div function ExpHtmlToWord(eDiv) { var oWD = new ActiveXObject("Word.Application"); var oDC = oWD.Documents.Add("",0,1); var oRange =oDC.Range(0,1); var sel = document.body.createTextRange(); sel.moveToElementText(eDiv); sel.select(); sel.execCommand("Copy"); oRange.Paste(); oWD.Application.Visible = true; } /////////////////////////////////////////////// (有) // 功能:合并表格 // 参数:tb--需要合并的表格ID // 参数:colLength--需要对前几列进行合并,比如, // 想合并前两列,后面的数据列忽略合并,colLength应为2 // 缺省表示对全部列合并 // data: 2005.11.6 /////////////////////////////////////////////// function uniteTable(tb,colLength){ // 检查表格是否规整 if (!checkTable(tb)) return; var i=0; var j=0; var rowCount=tb.rows.length; // 行数 var colCount=tb.rows[0].cells.length; // 列数 var obj1=null; var obj2=null; // 为每个单元格命名 for (i=0;i<rowCount;i++){ for (j=0;j<colCount;j++){ tb.rows[i].cells[j].id=tb.id+"tb__" + i.toString() + "_" + j.toString(); } } // 逐列检查合并 for (i=0;i<colCount;i++){ if (i==colLength) return; obj1=document.getElementById(tb.id+"tb__0_"+i.toString()) for (j=1;j<rowCount;j++){ obj2=document.getElementById(tb.id+"tb__"+j.toString()+"_"+i.toString()); if (obj1.innerText == obj2.innerText){ obj1.rowSpan++; obj2.parentNode.removeChild(obj2); }else{ obj1=document.getElementById(tb.id+"tb__"+j.toString()+"_"+i.toString()); } } } } //只合并到前几列(有) function uniteTableByColLength(tb,colLength){ // 检查表格是否规整 if (!checkTable(tb)) return; var i=0; var j=0; var rowCount=tb.rows.length; // 行数 var colCount=colLength; // 列数 var obj1=null; var obj2=null; // 为每个单元格命名 for (i=0;i<rowCount;i++){ for (j=0;j<colCount;j++){ tb.rows[i].cells[j].id=tb.id+"tb__" + i.toString() + "_" + j.toString(); } } // 逐列检查合并 for (i=0;i<colCount;i++){ if (i==colLength) return; obj1=document.getElementById(tb.id+"tb__0_"+i.toString()) for (j=1;j<rowCount;j++){ obj2=document.getElementById(tb.id+"tb__"+j.toString()+"_"+i.toString()); if (obj1.innerText == obj2.innerText){ obj1.rowSpan++; obj2.parentNode.removeChild(obj2); }else{ obj1=document.getElementById(tb.id+"tb__"+j.toString()+"_"+i.toString()); } } } } ///////////////////////////////////////// // 功能:检查表格是否规整 (有) // 参数:tb--需要检查的表格ID // data: 2005.11.6 ///////////////////////////////////////// function checkTable(tb){ if (tb.rows.length==0) return false; if (tb.rows[0].cells.length==0) return false; /*for (var i=0;i<tb.rows.length;i++){ if (tb.rows[0].cells.length != tb.rows[i].cells.length) return false; }*/ return true; } function toExcelMethod(tableid) {//整个表格拷贝到EXCEL中 有 //alert(tableid); 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); //sel.moveToElementText(curTbltow); //把表格中的内容移到TextRange中 sel.select(); //全选TextRange中内容 sel.execCommand("Copy"); //复制TextRange中内容 //oSheet.Paste(); oSheet.PasteSpecial("HTML"); //粘贴到活动的EXCEL中 oXL.Visible = true; //设置excel可见属性 } function exportToWordWithPage(cont,key){ var oWD = new ActiveXObject("Word.Application"); //默认为页面视图 var oDC = oWD.Documents.Add("", 0, 0); var oRange = oDC.Range(0, 1); //var oRange1 = oDC.Range(0,2); var sel = document.body.createTextRange(); //参数为html元素id sel.moveToElementText(cont); sel.select(); sel.execCommand("Copy"); oRange.Paste(); oWD.Application.Visible = true; //得到打开后word的selection对象 var selection = oWD.Selection; //设置字体大小 selection.Font.Size = 10; //ctrl+A 全选操作 selection.WholeStory(); //清除格式 selection.Find.ClearFormatting(); //指定查找关键字 selection.Find.Text = key; //^m为手动分页符标记 //向下查找 selection.Find.Forward = true; selection.Find.Wrap = 1; //不区分大小写 selection.Find.MatchCase = false; //不匹配整个单词 selection.Find.MatchWholeWord = false; //如果找到指定字符串返回真,否则返回false while (selection.Find.Execute()) { //插入分页符,分页符常量为7,具体可查word api selection.InsertBreak(7); } }
相关文章推荐
- js导出表格到word及excel(ie only)
- 网页内容导出word/excel的js代码
- js导出表格到word及excel(ie only) 【转载】
- 关于js操作word和excel,js导出word和excel的若干方法汇总[转]
- js 导出到word,excel
- js导出表格数据到word、excel
- js将html中的内容导出word、或者excel文件的方法
- js将html中的内容导出word、或者excel文件的方法
- js 导出Excel和Word
- JS导出Excel/word
- JS 导出Excel,Word
- js导出到word excel .
- js的导出Excel,Word,pdf的实现以及服务器端生成pdf的实现
- 关于js操作word和excel,js导出word和excel的若干方法汇总[转]
- 网页内容导出word/excel的js代码
- js导出excel
- 3、excel 导出。适合用于将界面上的内容所见及所得的输出,可以设置单元格的的合并,大小,字体,颜色等等
- 报表导出到word或者excel的功能实现
- js导出格式化的excel 实例方法
- 用JS进行Excel 三种导出方式