ASP.NET网站制作之asp.net下将页面内容导进到word模板中的...
有时也搞不懂应该学那种;主要看你以后去的那个公司是使用哪种了。就像王千祥的课上说的:企业应用现在主要就三层(其实也差不多就是MVC):表示层(主要使用html写的,很简单)、业务逻辑层(主要就是应用服务器的)。最后就是数据层(其实就是学习数据库)1,新建word模版,办法是找必要用程序添补的word文档,在必要输出的中央用"书签"(拔出-->书签-->输出id-->ok)标志后保留既可.2,在word模版上修正平安增加everyone可读,以防文件没法翻开.
3,在工程里增加"援用"找到"MicrosoftWord10.0ObjectLibrary"或"MicrosoftWord11.0ObjectLibrary"点断定.
4,新建类叫WordOp.cs意义是操纵word的类.
内容以下:
复制代码代码以下:
usingSystem;
usingSystem.Web.Security;
usingMicrosoft.Office.Interop.Word;
usingSystem.IO;
///<summary>
///Word的择要申明
///</summary>
publicclassWordOp
{
publicWordOp()
{
//
//TODO:在此处增加机关函数逻辑
//
}
privateApplicationClassWordApp;
privateDocumentWordDoc;
privatestaticboolisOpened=false;//判别word模版是不是被占用
publicvoidSaveAs(stringstrFileName,boolisReplace)
{
if(isReplace&&File.Exists(strFileName))
{
File.Delete(strFileName);
}
objectmissing=Type.Missing;
objectfileName=strFileName;
WordDoc.SaveAs(reffileName,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,
refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing);
}
//界说一个Word.Application工具
publicvoidactiveWordApp()
{
WordApp=newApplicationClass();
}
publicvoidQuit()
{
objectmissing=System.Reflection.Missing.Value;
WordApp.Application.Quit(refmissing,refmissing,refmissing);
isOpened=false;
}
//基于模版新建Word文件
publicvoidOpenTempelte(stringstrTemppath)
{
objectMissing=Type.Missing;
//objectMissing=System.Reflection.Missing.Value;
activeWordApp();
WordApp.Visible=false;
objectoTemplate=(object)strTemppath;
try
{
while(isOpened)
{
System.Threading.Thread.Sleep(500);
}
WordDoc=WordApp.Documents.Add(refoTemplate,refMissing,refMissing,refMissing);
isOpened=true;
WordDoc.Activate();
}
catch(ExceptionEx)
{
Quit();
isOpened=false;
thrownewException(Ex.Message);
}
}
publicvoidFillLable(stringLabelId,stringContent)
{
//翻开Word模版
//OpenTempelte(tempName);//对LabelId的标签举行添补内容Content,即信件标题项
objectbkmC=LabelId;
if(WordApp.ActiveDocument.Bookmarks.Exists(LabelId)==true)
{
WordApp.ActiveDocument.Bookmarks.get_Item(refbkmC).Select();
}
WordApp.Selection.TypeText(Content);
//SaveAs(saveAsFileName);
//Quit();
}
}
5,在必要利用的页面背景挪用既可,举比方下:
复制代码代码以下:
stringpath=Server.MapPath("download");
stringtemplatePath=path+"file://downloadczql.doc/";
WordOpwop=newWordOp();
wop.OpenTempelte(templatePath);
wop.FillLable("id","1");
wop.FillLable("usr_name","测试");
wop.SaveAs(path+"file://savetest.doc",true/);
wop.Quit();
Response.redirect(@"/download/savetest.doc");//做个跳转用于下载.
你觉得数据库怎么样? 在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗? Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。 如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。 在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。 如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。 但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。 目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
页:
[1]