1. 程式人生 > >C#操作Word(三)——C#向Word文件中寫入文字

C#操作Word(三)——C#向Word文件中寫入文字

例項說明
Word有著強大的文字編輯功能,我們可以輕鬆的在Word中輸入文字內容,更改文字字型,設定文字大小、顏色,方便的對文字內容排版。在前面的例項中已經詳細介紹了怎樣使用C#建立Word文件,本例項將會使用C#方便的向指定的Word文件中輸入文字內容。例項執行效果如圖1所示。
 
圖1  向Word文件中寫入文字
例項執行中單擊“建立Word文件”按鈕,會根據使用者選擇的路徑位置建立Word文件並向文件中新增文字,而文件的名稱就是當前系統日期與時間。建立的Word文件如圖2所示。
 
圖2  被寫入文字的Word文件
? 關鍵技術
本例項重點在於向讀者介紹怎樣使用Word文件中Range屬性向Word中新增文字資訊,下面對本例項用到的關鍵技術進行詳細講解。
讀取或設定Word文件中的文字內容的方式基本相同,首先是得到文字內容的範圍,然後通過範圍物件讀取或設定文字資訊。例項中首先使用了Paragraphs集合中的索引獲取Word文件中的段落物件,然後通過Paragraph段落物件的Range屬性得到文件中段落的範圍,最後通過範圍物件的Text屬性獲取或設定段落內的文字資訊。
  說明:在Word文件的操作中也可以使用Range物件的Collapse方法摺疊Range物件。摺疊後的Range物件將不包含文字或其它資訊,只是標註文件中的一個位置。
? 設計過程


(1)開啟Visual Studio 2008開發環境,新建一個Windows窗體應用程式,命名為AddLetter。
(2)使用C#操作Word文件,需要引用相關的COM元件,引用COM元件的步驟請參照例項002中的設計過程。
(3)更改預設窗體Form1的Name屬性為Frm_Main,更改Text屬性為“向Word文件中寫入文字”,並向窗體中新增兩個TextBox控制元件,控制元件分別用輸入字串和顯示Word文件儲存路徑;向窗體中新增3個Button按鈕,這3個按鈕分別用於選擇文件儲存路徑、建立Word文件和顯示Word文件。
(4)程式主要程式碼如下:
private void btn_New_Click(object sender, EventArgs e)
{
    btn_New.Enabled = false;            //停用新建按鈕
    ThreadPool.QueueUserWorkItem(          //使用執行緒池
        (P_temp) =>             //使用lambda表示式
        {
            G_wa = new Word.Application();         //建立Word應用程式物件
            Word.Document P_wd = G_wa.Documents.Add(      //建立新文件
                ref G_missing, ref G_missing, ref G_missing, ref G_missing);
            Word.Range P_Range = P_wd.Paragraphs[1].Range;     //得到文件的範圍物件
            P_Range.Text = txt_add.Text;         //向文件中新增字串
            G_str_path = string.Format(          //計算檔案儲存路徑
                @"{0}{1}", G_FolderBrowserDialog.SelectedPath,
                DateTime.Now.ToString("yyyy年M月d日h時s分m秒fff毫秒") + ".doc");
            P_wd.SaveAs(            //儲存Word檔案
                ref G_str_path,
                ref G_missing, ref G_missing, ref G_missing, ref G_missing,
                ref G_missing, ref G_missing, ref G_missing, ref G_missing,
                ref G_missing, ref G_missing, ref G_missing, ref G_missing,
                ref G_missing, ref G_missing, ref G_missing);
            ((Word._Application)G_wa.Application).Quit(       //退出應用程式
                ref G_missing, ref G_missing, ref G_missing);
            this.Invoke(             //開始執行窗體執行緒
                (MethodInvoker)(() =>          //使用lambda表示式
                {
                    btn_Display.Enabled = true;        //啟用顯示按鈕
                    MessageBox.Show("成功建立Word文件!", "提示!");   //彈出訊息對話方塊
                }));
        });
}
                                                            ——摘自《C#程式設計詞典》