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

Javascript 将数据库中的数据写入WORD文档的表格中

2007-12-13 15:15 543 查看
经理要我实现如题的功能,我费了九牛二虎之力,终于弄出个样子来。感觉收获颇非,这里用到了AJAXPRO得到数据库中的数据,然后在客户端写入WORD,贴出来,给用得到的朋友借鉴一下:




<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="JSWriteWord.aspx.cs" Inherits="JSWriteWord" %>




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">




<html xmlns="http://www.w3.org/1999/xhtml" >


<head runat="server">


<title>无标题页</title>




<script language="javascript" type="text/javascript" >...






function WriteWord()




...{


var oWord = new ActiveXObject("Word.Application"); //建立Word对象


var oDoc = oWord.Documents.Add(); //建立文档对像.


oWord.Application.Visible = false; //Word可视


var oinsert = oWord.Selection; //建立插入点对像




oinsert.Font.color = 12345645;


oinsert.Font.Bold = 1;


var title = "天景隆软件有限公司";


oinsert.TypeText(title); //写入标题


setFormat(oinsert,title,22,1); //设置标题字体大小和是否居中




oinsert.Font.Bold = 1;


oinsert.TypeParagraph(); // 换行


oinsert.TypeParagraph();


var author ="作者:曾俊";


oinsert.TypeText(author);


setFormat(oinsert,author,12,3);


oinsert.TypeParagraph();


var toDay = new Date();


var thisDay ="日期:" + toDay.getFullYear() + "年"+ (toDay.getMonth() + 1) + "月" + toDay.getDate() + "日";


oinsert.TypeText(thisDay);


setFormat(oinsert,thisDay,12,3);


oinsert.TypeParagraph();


oinsert.TypeParagraph();


oinsert.TypeParagraph();


oinsert.Font.color = -16777216;




createTable(oDoc,oinsert,"产品表"); //写入表格






writebody("",oinsert,16,3,999999);


oinsert.TypeParagraph();


writebody("Google投身慈善事业 2600万美元用于捐赠投 ",oinsert,16,3,"黑体",9804560);


oinsert.TypeParagraph();


writebody(" Google.org开展慈善活动的多种方式使其可以通过投资获得一定的回报,正如其在eSolar公司的投资一样。",oinsert,12,3,"宋体",1);


oinsert.TypeParagraph();


oinsert.TypeParagraph();


oinsert.TypeParagraph();


writebody("乔布斯:Google开发Android平台没什么好 ",oinsert,16,3,"黑体",9804560);


oinsert.TypeParagraph();


writebody(" 丁磊,网易CEO、曾经的中国首富,昨天以广东省第十一届人大代表的身份出现。尽管他悄悄出现在会场外,仍然遭到了媒体的围追堵截。“我是个新代表,但我还是愿意聊聊我关心的话题”,昨天中午,丁磊终于答应接受本报 ",oinsert,12,3,"宋体",1);


//writebody("END",oinsert,12,1);


save(oDoc,oWord);


}




function createTable(wordDocument,oinsert,tableName)




...{


writebody(tableName,oinsert,18,3,"黑体",123457);




oinsert.Font.Name = "宋体";//设置字体为宋体


oinsert.Font.Size = 12;


oinsert.Font.color = 6454984;


oinsert.ParagraphFormat.Alignment =1; //设置对齐方式




var ds = JSWriteWord.getList().value; //调用Ajax方法,取得数据表中的值




var rownum=ds.Tables[0].Rows.length;//获取行数


var cellnum = ds.Tables[0].Columns.length;


wordDocument.Tables.Add(oinsert.Range,rownum,cellnum);//新建表格,行数为talbe的行数,列数取最大的列数




fillTable(ds,oinsert.Tables(oinsert.Tables.Count),oinsert);


}




//根据ds的内容写入WORD


function fillTable(ds,wordTable,oinsert)




...{


var lastrows=0;


var rownum = ds.Tables[0].Rows.length;


for( i = 0 ;i < rownum;i ++)




...{


var rowcolumn = ds.Tables[0].Rows[i];


var colNO = 1;


var rows=0;




for(var a in rowcolumn)




...{


oinsert.Font.Name = "宋体";//设置字体为宋体


oinsert.Font.Size = 12;


oinsert.Font.color = 6454984;




oinsert.ParagraphFormat.Alignment =1; //设置对齐方式


//alert( rowcolumn[a]+"");


oinsert.TypeText(rowcolumn[a]+""); //写入内容


oinsert.MoveRight(1,1);


colNO ++;


}


}


}




/**//*****************文本,插入点对像,字体大小,对齐方式,字体,颜色*******/


function writebody(text,oinsert,fontSize,align,fontName,ocolor)




...{


oinsert.TypeText(text);


oinsert.MoveLeft(1,text.length,1); //选中文字


oinsert.Font.Name = fontName; //设置字体为宋体


oinsert.Font.Size = fontSize; //设置字符大小


oinsert.Font.color = ocolor;


oinsert.MoveRight(1,1); //右移一个字符,其实就是取消选定


oinsert.ParagraphFormat.Alignment= align; //居中对齐 1为居中,2为右对齐,3为左对齐




}




function save(doc,oWord)




...{


var filename;


var da = new Date();


filename = ""+da.getFullYear() + da.getMonth() + da.getDay() + da.getHours() + da.getSeconds() + da.getMinutes() + "";


doc.SaveAs("F:/"+filename+".doc");


oWord.Quit();


var lblmsg = document.getElementById("lblMessage");


}






function setFormat(oinsert,text,fontSize,align)...{


oinsert.MoveLeft(1,text.length,1); //选中文字


oinsert.Font.Name = "宋体"; //设置字体为宋体


oinsert.Font.Size = fontSize; //设置字符大小


oinsert.MoveRight(1,1); //右移一个字符,其实就是取消选定


oinsert.ParagraphFormat.Alignment= align; //居中对齐 1为居中,2为右对齐,3为左对齐


}


</script>


</head>


<body>


<form id="form1" runat="server">


<div>


<input id="CreateWord" type="button" value="生成Word文档" onclick="CreateWordDoc()" />


<label id = "lblMessage" runat = "server" style="font-size:large; color:Red"></label>


<asp:GridView ID="GridView1" runat="server">




</asp:GridView>




</div>


</form>


</body>




<script language="javascript" type ="text/javascript">...


function CreateWordDoc()




...{


WriteWord();


var lblmsg = document.getElementById("lblMessage");


lblmsg.innerText = "生成成功";


}


</script>


</html>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: