您的位置:首页 > Web前端 > JavaScript

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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: