深爱那片海 发表于 2015-1-16 22:31:47

ASP.NET编程:在ASP.NET中利用Microsoft Word文档

效率会有不少的变化。而实际上java是基于堆栈机器来设计,这和我们常见的基于寄存器的本地机器是差异比较大的。总体来说,这是一种虚拟机的设计思路。asp.net|microsoft|word  本文是应在ASP.NET里创立MicrosoftWord文档之需而写的。这篇文章演示了在ASP.NET里怎样创立和修正MicrosoftWord文档。

  [背景]

  主动化是一种能让各类言语编写的(如:VisualBasic.NET或C#)使用程序在程序级别上把持其他使用程序。

  关于Word的主动化同意你实行诸如创立新的文档,向文档里增加文本,邮件兼并和格局化文档这些操纵。在Word和其他的MicrosoftOffice程序里,那些经由过程用户接口举行的可视化操纵也能够经由过程程序级其余主动化来完成。

  Word经由过程工具模子把这个程序可操纵的功效向外供应了利用接口。

  工具模子是一组类和办法的汇合,这些类和办法与Word的逻辑组件组成对应。比方,他多是使用程序工具,文档工具,段落工具,每个工具都包括了Word组件的功效。

  [创建工程]

  在.NET里操纵Word的第一步就是增加COM援用到你的工程里,经由过程右键点击SolutionExplorer的Reference,AddReference。选择COM选项卡,查找MicrosoftWord10.0ObjectLibrary。点击选择,OK。

  这将把封装有Word的COM的程序集主动的增加到使用程序目次里。

  如今,你能够创建一个Word的实例了:

  Word.ApplicationClassoWordApp=newWord.ApplicationClass();

  你能够挪用Word供应给你的办法和属性来利用Word文档。

  进修怎样利用Word,Excel,Powerpoint的工具模子最好的路子就是利用在这些Office使用里利用MacroRecorder:

  1.在Tools菜单的Macro选项里选择RecordNewMacro,而且实行你有乐趣的义务。

  2.在Tools菜单的Macro选项里选择StopRecording。

  3.假如你举行了记录,选择Tools菜单的Macro选项里的Macros,找到你纪录的宏,你能够编纂它。

  下面的操纵发生了VBA代码来完成你纪录的义务。必要注重的是,宏在年夜多半情形下不是最好的代码,可是它供应了一种便利和可用的办法。

  上面例子翻开并增加一写笔墨:

  objectfileName="c:database        est.doc";

  objectreadOnly=false;

  objectisVisible=true;

  objectmissing=System.Reflection.Missing.Value;

  Word.ApplicationClassoWordApp=newWord.ApplicationClass();  

  Word.DocumentoWordDoc=oWordApp.Documents.Open(reffileName,refmissing,refreadOnly,

  refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,

  refmissing,refmissing,refisVisible,refmissing,refmissing,refmissing);  

  oWordDoc.Activate();

  oWordApp.Selection.TypeText("Thisisthetext");

  oWordApp.Selection.TypeParagraph();

  oWordDoc.Save();  

  oWordApp.Application.Quit(refmissing,refmissing,refmissing);  

  假如创立一个新文档并保留是如许写的: 

  Word.ApplicationClassoWordApp=newWord.ApplicationClass();  

  Word.DocumentoWordDoc=oWordApp.Documents.Add(refmissing,refmissing,refmissing,refmissing);  

  oWordDoc.Activate();  

  oWordApp.Selection.TypeText("Thisisthetext");

  oWordApp.Selection.TypeParagraph();

  oWordDoc.SaveAs("c:myfile.doc");  

  oWordApp.Application.Quit(refmissing,refmissing,refmissing);

  在C#里,Word文档类的翻开办法是如许界说的:Open(refobject,refobject,refobject,refobject,refobject,refobject,refobject,refobject,refobject,refobject,refobject,refobject,refobject,refobject,refobject)。在C#里的翻开办法必要15个参数,而且每一个参数必需被ref关头字所形貌,并且是object范例。

  第一个参数是文件,名,在VisualBasic.NET里一般是一个String,可是在在C#里,它必需是一个包括有String的object,代码是如许的:

  objectfileName="c:database        est.doc";  

  固然我们仅必要利用Open办法的第一个参数,可是C#不同意利用默许参数,以是我们付与它14个object范例的值:System.Reflection.Missing.Value  

  [利用模版]  

  假如你必要主动的创建有通用格局的文档,那你可使用基于预格局化的摸版来创建新文档,如许能够便利良多。

  在Word里利用摸版而不是创建空文档有两个分明的长处:  

  1.你能够更年夜水平的格局化文档和把持文档里的工具。

  2.能够用较少的代码创建文档。
  
  经由过程利用摸版,你能够调剂表格、段落和其他一些在文档里的工具的地位,同时包含格局化这些工具。经由过程利用主动化处置,你能够创建一个基于摸版的文档,代码以下:  

  Word.ApplicationClassoWordApp=newWord.ApplicationClass();

  objectoTemplate="c:MyTemplate.dot";

  oWordDoc=oWordApp.Documents.Add(refoTemplate,refMissing,refMissing,refMissing);
  在你利用的摸版里,你能够界说一些暗号,主动化处置将向这些地位添补文本,以下: 

  objectoBookMark="MyBookmark";

  oWordDoc.Bookmarks.Item(refoBookMark).Range.Text="SomeTextHere";
  

  利用摸版的另外一个长处是你能够创立和保留那些在运转过程当中你想要的格局化款式,以下:  

  objectoStyleName="MyStyle";

  oWordDoc.Bookmarks.Item(refoBookMark).Range.set_Style(refoStyleName);  

  [利用CCWordApp类]

  在工程中包括了CCWordApp.cs这个文件,我不想老是在写象拔出文本,翻开文档如许的代码。

  以是,我决意把一些最主要的功效封装到CCWordApp类里往。

  上面代码扼要形貌了这个类和他的功效:

  publicclassCCWordApp

  {

  //itsareferencetotheCOMobjectofMicrosoftWordApplication

  privateWord.ApplicationClassoWordApplic;

  //itsareferencetothedocumentinuse

  privateWord.DocumentoWordDoc;  

  //ActivatetheinterfacewiththeCOMobjectofMicrosoftWord

  publicCCWordApp();  

  //Openanexistingfileoropenanewfilebasedonatemplate

  publicvoidOpen(stringstrFileName);  

  //Openanewdocument

  publicvoidOpen();  

  //DeactivatetheinterfacewiththeCOMobjectofMicrosoftWord

  publicvoidQuit();  

  //Savethedocument

  publicvoidSave();  

  //SavethedocumentwithanewnameasHTMLdocument

  publicvoidSaveAs(stringstrFileName);  

  //SavethedocumentinHTMLformat

  publicvoidSaveAsHtml(stringstrFileName);

  //InsertText

  publicvoidInsertText(stringstrText);

  //InsertLineBreak

  publicvoidInsertLineBreak();

  //InsertmultipleLineBreak

  publicvoidInsertLineBreak(intnline);

  //Settheparagraphalignment

  //PossiblevaluesofstrType:"Centre","Right","Left","Justify"

  publicvoidSetAlignment(stringstrType);

  //Setthefontstyle

  //PossiblevaluesofstrType:"Bold","Italic,"Underlined"

  publicvoidSetFont(stringstrType);

  //Disableallthestyle

  publicvoidSetFont();

  //Setthefontname

  publicvoidSetFontName(stringstrType);

  //Setthefontdimension

  publicvoidSetFontSize(intnSize);

  //Insertapagebreak

  publicvoidInsertPagebreak();

  //Gotoapredefinedbookmark

  publicvoidGotoBookMark(stringstrBookMarkName);

  //Gototheendofdocument

  publicvoidGoToTheEnd();

  //Gotothebeginningofdocument

  publicvoidGoToTheBeginning();

  翻开一个存在的文件的代码将是如许的:

  CCWordApptest;

  test=newCCWordApp();

  test.Open("c:database        est.doc");

  test.InsertText("Thisisthetext");

  test.InsertLineBreak;

  test.Save();

  test.Quit();

  [细节]  

  演示工程包括:

  CCWordApp.cs-下面利用的类

  CreateDocModel.aspx-创建基于利用书签的摸版的新文档的例子。

  CreateNewDoc.aspx-创建新文档,并向个中增加一写文本。

  ModifyDocument.aspx-翻开一个存在的文档,并在开端追加一些文本。

  template        emplate1.dot-摸版的例子(在CreateDocModel.aspx中利用到)

  注重你用来保留文档的目次,应当是可重写的。

  能够在Web.config里修正这个路径。
我认为,可以通过更加简单的首次编译,而增加第二次编译的负担,来提高java的运行效率。只是将java源代码进行简单的等价转换,而不假设编译成某种虚拟机器的目标格式,而由本地编译器针对性的二次编译。

不帅 发表于 2015-1-16 23:42:45

ASP.NET编程:在ASP.NET中利用Microsoft Word文档

主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。

兰色精灵 发表于 2015-1-20 11:29:58

在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?

深爱那片海 发表于 2015-1-29 06:56:54

我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。

莫相离 发表于 2015-2-5 23:46:35

当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。

仓酷云 发表于 2015-2-14 06:20:14

目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.

若天明 发表于 2015-3-4 05:01:27

能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。

再现理想 发表于 2015-3-11 17:15:46

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

谁可相欹 发表于 2015-3-19 03:04:39

JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。

柔情似水 发表于 2015-3-27 06:08:31

由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。

精灵巫婆 发表于 2015-3-27 06:08:31

ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。

飘飘悠悠 发表于 2015-3-27 06:08:31

主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。

小妖女 发表于 2015-3-27 06:08:30

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

admin 发表于 2015-3-27 06:09:35

但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
页: [1]
查看完整版本: ASP.NET编程:在ASP.NET中利用Microsoft Word文档