Microsoft Word Documents from ASP.NET

原网页链接:

http://www.codeproject.com/Articles/3959/Microsoft-Word-Documents-from-ASP-NET

官网demo链接;可以不用注册下载;

http://download.csdn.net/detail/sat472291519/7794739

在ASP.NET中创建和打开Microsoft Word文档

简介

在一个ASP.NET项目中需要创建和打开来操作Microsoft Word文档.

文章演示了如何使用Microsoft Word使用ASP.NET创建和修改文件。

背景

自动化是一个过程,它允许的语言编写,如Visual Basic。NET或C#以编程方式控制其他应用程序。自动化到Word可让您执行操作,如创建新文档,添加文本文档,邮件合并和格式的文档。与Word和其他Microsoft Office应用程序,几乎所有可以通过用户界面手动执行的操作都可以用编程方式通过使其自动化执行。通过一个对象模型编程功能。对象模型是作为同行的Word的逻辑组件的类和方法的集合。例如,有一个Application对象,Document对象和Paragraph对象,每个都包含在Word中这些组件中的功能。

项目

第一步在.NET操作WORD的,你需要通过右键单击在解决方案资源管理器中添加COM引用到项目的引用 - >添加引用。单击COM选项卡,然后查找的Microsoft Word10.0对象库。单击选择和确定。

这会自动将您的应用程序目录添加它包装到Word的COM访问的组件。

现在,你可以实例化一个Word应用程序的一个实例:

Word.ApplicationClass oWordApp = new Word.ApplicationClass();

您可以调用特定的方法和属性,微软Word提供给你操作Word文档,最好的方式来学习如何导航的Word,Excel对象模型和PowerPoint是使用宏录制这些Office应用程序:

从工具菜单上的宏选项录制新宏并执行你感兴趣的任务。

从工具菜单上的宏选项中选择停止录制。

一旦你完成录制,从工具菜单上的宏选项中选择宏,选择您所记录的宏,然后单击编辑。

这时需要你对生成的VBA代码,完成您所录制的任务。请记住,所录制的宏不会在大多数情况下不是最好的代码,但它提供了一种快速,实用的例子。

例如打开一个已经存在的文件,并附加一些文字:

object fileName = "c:\\database\\test.doc";
object readOnly = false;
object isVisible = true;
object missing = System.Reflection.Missing.Value;
Word.ApplicationClass oWordApp = new Word.ApplicationClass();

Word.Document oWordDoc = oWordApp.Documents.Open(ref fileName,
                            ref missing,ref readOnly,
                            ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref isVisible,
                            ref missing,ref missing,ref missing);

oWordDoc.Activate();

oWordApp.Selection.TypeText("This is the text");
oWordApp.Selection.TypeParagraph();
oWordDoc.Save();

oWordApp.Application.Quit(ref missing, ref missing, ref missing);

或者打开一个新文档,并将其保存:

 Collapse | Copy
Code

Word.ApplicationClass oWordApp = new Word.ApplicationClass();

Word.Document oWordDoc = oWordApp.Documents.Add(ref missing,
                           ref missing,ref missing, ref missing);

oWordDoc.Activate();

oWordApp.Selection.TypeText("This is the text");
oWordApp.Selection.TypeParagraph();
oWordDoc.SaveAs("c:\\myfile.doc");

oWordApp.Application.Quit(ref missing, ref missing, ref missing);

在C#中,Word文档类的Open方法签名被定义为开放式 Open(ref object, ref object, refobject, ref object, ref object, ref object, ref object, ref object, ref object, refobject, ref object, ref object, ref object, ref object, ref object). 。这意味着,在C#中的Open方法需要15所需的参数,每个参数都必须在前面加上ref关键字和每个参数的类型必须为对象。因为第一个参数是一个文件名,一般在Visual
Basic字符串值。 NET中,我们必须声明,认为C#的字符串值,因此代码类型的对象变量:

object fileName = "c:\\database\\test.doc";

虽然我们只需要使用的第一个参数的Open方法,请记住,C#不允许可选参数,所以我们提供了最后的14个参数作为持有System.Reflection.Missing.Value值类型的对象变量

使用模板

如果您使用的是自动化构建都是在一个共同的格式的文件,你可以受益于与基于一个预先格式化的模板的新文档开始的过程。使用模板与您的Word自动化客户端拥有超过从头创建文档2显著优势: 您可以更好地控制对象的整个文件的格式和位置。 你可以用更少的代码构建文档。 通过使用模板,您可以微调控制表格,段落,并在文档中的其他对象,也包括对这些对象的格式。通过使用自动化,您可以根据使用如下面的代码模板创建新文档:

 Collapse | Copy
Code

Word.ApplicationClass oWordApp = new Word.ApplicationClass();
object oTemplate = "c:\\MyTemplate.dot";
oWordDoc = oWordApp.Documents.Add(ref oTemplate,
              ref Missing,ref Missing, ref Missing);

在你的模板,可以定义书签,让您的自动化客户端可以在文档中的特定位置可变文本填充,方法如下:

object oBookMark = "MyBookmark";
oWordDoc.Bookmarks.Item(ref oBookMark).Range.Text = "Some Text Here";

另一个优点使用模板,您可以创建和存储格式,您希望应用在运行时的样式,如下所示:

object oStyleName = "MyStyle";
oWordDoc.Bookmarks.Item(ref oBookMark).Range.set_Style(ref oStyleName);

使用类CCWordApp

该项目包含一个文件:CCWordApp.cs。我不想写每所有的代码所需的时间,插入文本,打开一个文件,等等......所以我决定写一个类CCWordApp是包装最重要的功能。这是类及其功能的简要说明。

public class CCWordApp
{
    //it‘s a reference to the COM object of Microsoft Word Application
    private Word.ApplicationClass oWordApplic;
    // it‘s a reference to the document in use
    private Word.Document oWordDoc;                    

    // Activate the interface with the COM object of Microsoft Word
    public CCWordApp();

    // Open an existing file or open a new file based on a template
    public void Open( string strFileName);

    // Open a new document
    public void Open( );

    // Deactivate the interface with the COM object of Microsoft Word
    public void Quit( );

    // Save the document
    public void Save( );

    //Save the document with a new name as HTML document
    public void SaveAs(string strFileName );

    // Save the document in HTML format
    public void SaveAsHtml(string strFileName );

    // Insert Text
    public void InsertText( string strText);

    // Insert Line Break
    public void InsertLineBreak( );

    // Insert multiple Line Break
    public void InsertLineBreak( int nline);

    // Set the paragraph alignment
    // Possible values of strType :"Centre", "Right", "Left", "Justify"
    public void SetAlignment(string strType );

    // Set the font style
    // Possible values of strType :"Bold","Italic,"Underlined"
    public void SetFont( string strType );

    // Disable all the style
    public void SetFont( );

    // Set the font name
    public void SetFontName( string strType );

    // Set the font dimension
    public void SetFontSize( int nSize );

    // Insert a page break
    public void InsertPagebreak();

    // Go to a predefined bookmark
    public void GotoBookMark( string strBookMarkName);

    // Go to the end of document
    public void GoToTheEnd( );

    // Go to the beginning of document
    public void GoToTheBeginning( );

因此,要打开一个现有的文件中的代码将是:

CCWordApp test ;
test = new CCWordApp();
test.Open ("c:\\database\\test.doc");
test.InsertText("This is the text");
test.InsertLineBreak;
test.Save ();
test.Quit();

详细

CCWordApp.cs - 类

CreateDocModel.aspx:构建基于模板的新文档的例子和使用书签

CreateNewDoc.aspx:建立一个新文件,并插入一些文本的例子

ModifyDocument.aspx:在最后打开一个已有的文档和附加一些文本的一个例子

模板\ template1.dot:模板的一个例子(在CreateDocModel.aspx使用)

请记住,目录,其中保存文件时,必须可写。请在Web.config改变路径。

参考文献

Microsoft Word Documents from ASP.NET

时间: 2024-08-13 21:19:33

Microsoft Word Documents from ASP.NET的相关文章

ASP.NET里创建Microsoft Word文档

原文发布时间为:2008-08-03 -- 来源于本人的百度文章 [由搬家工具导入] 本文是应在ASP.NET里创建Microsoft Word文档之需而写的。这篇文章演示了在ASP.NET里怎么创建和修改Microsoft Word文档。 [背景]      自动化是一种能让各种语言编写的(如:Visual Basic.NET或C#)应用程序在程序级别上控制其他应用程序。      对于Word的自动化允许你执行诸如创建新的文档,向文档里添加文本,邮件合并和格式化文档这些操作。在Word和其他

IIS 调用Microsoft.Office.Interop.Word.Documents.Open 返回为null

控制面板->管理工具->组件服务->计算机->我的电脑->DCom配置->找到Microsoft Word文档 之后 单击属性打开此应用程序的属性对话框. 2. 单击标识选项卡,然后选择交互式用户. 3.单击"安全"选项卡,分别在"启动和激活权限"和"访问权限"组中选中"自定义",然后 自定义->编辑->添加ASP.NET账户和IUSER_计算机名 * 这些帐户仅在计算机上安装有

Asp.net 在配置Microsoft Excel、Microsoft Word应用程序权限时 error: 80070005 和8000401a 的问题

Asp.net 在配置Microsoft Excel.Microsoft Word应用程序权限时 error: 80070005 和8000401a 的解决总 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005. 控制面板->管理工具->组件服务->计算机->我的电脑->DCom配置->找到Microsoft Word文档之后单击属性打开此应用程序的属

Java操作Microsoft Word之jacob

转自: 现在我们一起来看看,用Java如何操作Microsoft Word. jacob,官网是http://danadler.com/jacob 这是一个开源的工具.最新版本1.7 官方的解释是:The JACOB Project: A JAva-COM Bridge 这是官方对下载文件的说明: jacob.jar: a JAR file for the java classes which you must add to your CLASSPATH. The package names r

git 对 Microsoft Word 进行版本控制

昨天中国高校发生了一件骇人听闻的事情,听说不少高校的校园网用户连接校园网被勒索病毒给黑了,重要文件全部被加密,必须要支付赎金才能解密,具体新闻可以参见:http://www.sohu.com/a/140236495_346360.而且还有不少是和我一样的大四毕业狗,听说因为毕业论文没有备份,结果被黑了,然后,然后就没有然后了...真的是欲哭无泪啊.看到这个消息,我想起来我的没写完的毕业论文好像也没备份,吓得我赶紧去把论文备份到onedrive上面去了.据说微软之前已经打过补丁了,只是我国广大使用

How to accept Track changes in Microsoft Word 2010?

"Track changes" is wonderful and remarkable tool of Microsoft Word 2010. The feature allows editing your documents without making the changes permanent. It means if you have deleted a word, Track back highlights it, though the word is deleted bu

Create and format Word documents using R software and Reporters package

http://www.sthda.com/english/wiki/create-and-format-word-documents-using-r-software-and-reporters-package Install and load the ReporteRs R package Create a simple Word document Add texts : title and paragraphs of texts Format the text of a Word docum

Interop.Word Documents.Open is null

问题描述 程序在Windows Server 2012 R2调用Word组件正常,但是换到Windows Server 2008 R2之后,程序异常. 代码 Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); Document doc = word.Documents.Open(filename); //doc is null 解决 step1 创建文件

Microsoft Word 控件Essential DocIO下载及介绍

Essential DocIO是一款强大的.NET控件,可用于读取Microsoft Word 文件,使你的应用程序可以很容易地创建丰富的Word文档,支持多种像Office word一样的操作,可以导出为多种文件格式,对文档进行格式化等,开发人员可以使用该控件创建出像Word一样的报表文档. 具体功能: 仅需要一行代码就可以创建出一个新的Word文档,并可以进行很多自定义选项,如:插入片段.段落.书签.图片等 所有标准和自定义属性都可以查看和修改 支持创建和取得文档里的变量 支持设置页边距 当