现在的位置: 首页 > 综合 > 正文

JS 合并列,导出excel,word

2013年08月17日 ⁄ 综合 ⁄ 共 5040字 ⁄ 字号 评论关闭

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);
    }
}

 

 

抱歉!评论已关闭.