在ASP.NET中使用Microsoft Word文件 (轉)
在中使用 文件
[來源]
[作者]Michela
[本文中使用的演示工程] 大小:309 Kb
[介紹]
本文是應在裡建立Microsoft Word文件之需而寫的。這篇文章演示了在ASP.NET裡怎麼建立和修改Microsoft Word文件。
[背景]
自動化是一種能讓各種語言編寫的(如:.NET或)應用在程式級別上控制其他應用程式。
對於Word的自動化允許你諸如建立新的文件,向文件裡新增文字,合併和格式化文件這些操作。在Word和其他的Microsoft 程式裡,那些透過介面進行的視覺化操作也可以透過程式級別的自動化來實現。
Word透過模型把這個程式可操作的功能向外提供了使用介面。
物件模型是一組類和方法的集合,這些類和方法與Word的邏輯構成對應。例如,他可能是應用程式物件,文件物件,段落物件,每一個物件都包含了Word元件的功能。
[建立工程]
在.NET裡操作Word的第一步就是新增COM引用到你的工程裡,透過右鍵點選Solution Explorer的Reference,Add Reference。選擇COM選項卡,查詢Microsoft Word 10.0 Library。點選選擇,OK。
這將把封裝有Word的COM的程式集自動的新增到應用程式目錄裡。
現在,你可以建立一個Word的例項了:
Word.ApplicationClass oWordApp = new Word.ApplicationClass();
你可以Word提供給你的方法和屬性來操縱Word文件。
學習如何使用Word,,的物件模型最好的途徑就是使用在這些Office應用裡使用Macro Recorder:
1.在Tools選單的Macro選項裡選擇 Record New Macro ,並且執行你有興趣的任務。
2.在Tools選單的Macro選項裡選擇 Stop Recording。
3.如果你進行了紀錄,選擇Tools選單的Macro選項裡的Macros,找到你記錄的宏,你可以編輯它。
上面的操作產生了VBA程式碼來完成你記錄的任務。需要注意的是,宏在大多數情況下不是最好的程式碼,但是它提供了一種便捷和可用的方法。
下面例子開啟並新增一寫文字:
object fileName = "c:databasetest.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.ion.TypeText("This is the text");
oWordApp.Selection.TypeParagraph();
oWordDoc.Save();
oWordApp.Application.Quit(ref missing, ref missing, ref missing);
如果建立一個新文件並儲存是這樣寫的:
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(ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object)。在C#裡的開啟方法需要15個引數,並且每個引數必須被ref關鍵字所描述,而且是object型別。
第一個引數是檔案,名,在Visual Basic.NET裡通常是一個String,但是在在C#裡,它必須是一個包含有String的object,程式碼是這樣的:
object fileName = "c:databasetest.doc";
雖然我們僅需要使用Open方法的第一個引數,但是C#不允許使用預設引數,所以我們賦予它14個object型別的值:System.Reflection.Missing.Value
[使用摸版]
如果你需要自動的建立有通用格式的文件,那你可以使用基於預格式化的摸版來建立新文件,這樣可以方便很多。
在Word裡使用摸版而不是建立空文件有兩個明顯的優點:
1.你可以更大程度的格式化文件和控制文件裡的物件。
2.可以用較少的程式碼建立文件。
透過使用摸版,你可以調整表格、段落和其他一些在文件裡的物件的位置,同時包括格式化這些物件。透過使用自動化處理,你可以建立一個基於摸版的文件,程式碼如下:
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類裡去。
下面程式碼簡要描述了這個類和他的功能:
{
//it's a reference to the 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:databasetest.doc");
test.InsertText("This is the text");
test.InsertLineBreak;
test.Save ();
test.Quit();
[細節]
演示工程包含:
CCWordApp.cs - 上面使用的類
CreateDocModel. - 建立基於使用書籤的摸版的新文件的例子。
CreateNewDoc.aspx - 建立新文件,並向其中新增一寫文字。
ModifyDocument.aspx - 開啟一個存在的文件,並在末尾追加一些文字。
templatetemplate1.dot - 摸版的例子(在CreateDocModel.aspx中使用到)
注意你用來儲存文件的目錄,應該是可重寫的。
可以在 .config 裡修改這個路徑。
[參考文獻]
- to Visual Basic and C#
- a Merge from Visual Basic .NET
- Primary Interop Assemblies
- HOWTO: Find and Use Office Object Model Documentation
- corner.com/Code/2002/Mar/WordFrom.asp" target=_blank>Creating and Opening Microsoft Word Documents from .NET using C#
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-982676/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在C++程式中匯出Word文件的方法(轉)C++
- 在Excel表格中插入Word文件方法Excel
- 在蘋果Mac的Microsoft Word中如何禁用自動更正?蘋果MacROS
- 《Microsoft Word》進階技巧:如何設定文件檢視ROS
- 將PPT文件轉換為Word文件
- pdf轉換成word文件
- 在客戶端用JAVASCRIPT或VBSCRIPT生成WORD文件 (轉)客戶端JavaScript
- Word文件與WPS文件的相互轉換(轉)
- Microsoft Word 教程「10」,如何在 Word 中插入頁碼、目錄?ROS
- zt Microsoft Word 物件ROS物件
- 如何將Powerpoint文件轉換為Word文件
- 讓Word文件中的重複字串自動更新(轉)字串
- ADO在MICROSOFT DATA ACCESS 中的角色 (轉)ROS
- 線上免費工具——pdf轉word文件
- Word文件批次轉換成TXT文字
- Word長文件快速定位好方法(轉)
- 如何將Word文件轉成Excel表格?Excel
- 在Word中嵌入已有的Excel工作表(轉)Excel
- 在asp.net handler 中 使用 sessionASP.NETSession
- Python 將Word/ Exce/ PDF/ PPT文件轉為OFD文件Python
- ppt轉換word文件怎麼操作 把ppt轉換成word純文字
- 在ASP.NET中使用.NET元件 (轉)ASP.NET元件
- 在Word中實現表格的行列互換 (轉)
- 巧將PowerPoint文字轉換Word文件
- Microsoft Word 2021 for MacROSMac
- Asp.Net線上預覽Word文件的解決方案與思路ASP.NET
- asp.net實現word文件線上檢視功能 (三種方法)ASP.NET
- asp.net開啟word文件出錯的解決辦法ASP.NET
- excel表格怎麼轉換成word文件 表格資料轉換到文件Excel
- ASP 能都做到,在WEB中編輯WORD 文件!! JSP 如何實現?WebJS
- 輕鬆將Word文件快速轉成Flash檔案(轉)
- 使用Java poi編輯word.docx文件Java
- 怎麼把jpg圖片轉為Word文件 怎麼把Word轉換成jpg
- 使用Aspose.Words元件進行word文件書籤替換,文件、圖表插入,轉pdf等元件
- 移動端html展示word文件轉換方法HTML
- 讓新建的Word文件直接設定好格式(轉)
- go用unioffice轉換word文件為pdfGo
- 在word文件中全部的文字出現了灰色背景,而且有中括號括起。