這幾天,有個(gè)小任務(wù),要把一些數(shù)據(jù)用C#輸出到word里,查了查網(wǎng)上的資料,都是說(shuō)怎么處理word2003的,而我的器上裝的是office 2007,所以有些內(nèi)容有些不太一樣,這里跟大家分享一下我的操作過(guò)程。
首先是添加引用,從com控件中找到Microsoft Word 12.0 Object Library,或者直接選擇“瀏覽”,找到X:\Program Files\Microsoft Office\Office12\MSWORD.OLB,添加引用就可以了,程序或自動(dòng)增加Microsoft.Office.Interop.Word、Microsoft.Office.Core、VBIDE三個(gè)引用,注意,如果是Word2003,Microsoft.Office.Interop.Word 這個(gè)引用的名字是 Word,這是與2003不同的地方。
然后在程序中用using語(yǔ)句導(dǎo)入word。(如果是word2003,采用using Word;就可以了)
using Microsoft.Office.Interop.Word;
另外再增加一個(gè)引用,具體的作用參加代碼中的注釋
using System.Runtime.InteropServices;
下邊是對(duì)word的簡(jiǎn)單操作
bool createByMe;
Microsoft.Office.Interop.Word.Application oWord;
try
{
//如果有正在運(yùn)行的word實(shí)例,則直接采用當(dāng)前的word實(shí)例,
//否則,直接創(chuàng)建新實(shí)例,在最后退出時(shí)會(huì)報(bào)模板正在使用中等問(wèn)題
oWord = (Microsoft.Office.Interop.Word.Application)Marshal.GetActiveObject("Word.Application");
createByMe = false;
}
catch
{
oWord = new Microsoft.Office.Interop.Word.Application();
createByMe = true;
}
Object Nothing = System.Reflection.Missing.Value;
Object template = System.Windows.Forms.Application.StartupPath + "\Caliber.dot";
Document myDoc = oWord.Documents.Add(ref template, ref Nothing, ref Nothing, ref Nothing);
//do something
myDoc.Paragraphs.Last.Range.Text = "test";
myDoc.SaveAs(ref strFileName, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
myDoc.Close(ref Nothing, ref Nothing, ref Nothing);
if (createByMe)
{
oWord.Quit(ref Nothing, ref Nothing, ref Nothing);
}