閱讀629 返回首頁    go 京東網上商城


C# VS2012操作word文檔 (二).插入表格圖片

在上一篇文章"C# VS2012創建word文檔.(一)"中我們講述了如何使用VS2012引用COM中Miscrosoft Word 14.0 Object Library實現創建文檔,而這篇文章將講述如何添加表格和圖片,因為我在C#聯係數據庫做銷售係統中需要打印表單,我想以圖表形式顯示在word中,同時生成相應的餅狀圖或柱狀圖,所以才有查閱了相關資料,完成文章,供大家分享.其中使用openFileDialog控件也是希望大家學習了解下.

一. 界麵設置

設計界麵如下圖所示,其中對用的5個textBox和2個button控件在圖中標明,同時添加一個openFileDialog控件,在插入圖片時點擊"選擇"按鈕實現打開一個選擇圖片窗體,選擇後在textBox5隻讀中顯示相應圖片的路徑.

二. 源代碼

1.引用空間

//引用word對象類庫和命名空間
using MSWord = Microsoft.Office.Interop.Word;
using System.IO;
using System.Reflection;

2.添加外部變量

object path;                      //聲明文件路徑變量
MSWord.Application wordApp;       //聲明word應用程序變量
MSWord.Document worddoc;          //聲明word文檔變量    

3.通過openFileDialog實現顯示打開圖片路徑

點擊"選擇"按鈕在生成的button2_Click(object sender, EventArgs e)函數中添加如下代碼,其中openFileDialog1.Filter是設置打開文件類型,此處為jpg和bmp型,然後把選擇的圖片路徑賦值給textBox5.代碼如下圖所示:

//點擊"選擇"添加圖片 textBox5為隻讀
private void button2_Click(object sender, EventArgs e)
{
    //定義openFileDialog打開圖片對話框文件類型
    openFileDialog1.Filter = "BMP格式圖片(*.bmp)|*.bmp|JPG格式圖片(*.jpg)|*.jpg";
    if (openFileDialog1.ShowDialog() == DialogResult.OK)  //點擊"確定"按鈕執行
    {
        if (openFileDialog1.FileName != "")               //圖片路徑賦值給textBox5
        {
            this.textBox5.Text = openFileDialog1.FileName;
        }
    }
}

運行程序後,添加圖片時openFileDialog的效果如下圖所示,右下角有兩種圖片選擇格式供選擇:

4.插入表格和圖片

點擊"創建"按鈕在生成的函數button1_Click(object sender, EventArgs e)中添加實現向word中插入表格和圖片的代碼,如下:

//點擊"創建"按鈕實現創建word文件
private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text == "" || textBox2.Text == "")
    {
        MessageBox.Show("請輸入路徑和文檔名信息");
    }
    else
    { 
        //初始化變量
        object Nothing = Missing.Value;                              //表示缺少的值
        object format = MSWord.WdSaveFormat.wdFormatDocumentDefault; //格式docx
        wordApp = new MSWord.ApplicationClass();                     //聲明一個wordAPP對象
        worddoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);           
        //定義word文檔中表格
        MSWord.Table table = worddoc.Tables.Add(wordApp.Selection.Range,
            Convert.ToInt32(textBox3.Text),Convert.ToInt32(textBox4.Text),
            ref Nothing,ref Nothing);                                //定義一個表格對象
        table.Borders.Enable = 1;                                    //默認表格沒有邊框
        //填充表格中內容
        for (int i = 1; i <= Convert.ToInt32(textBox3.Text); i++)    //string轉換int型
        {
            for (int j = 1; j <= Convert.ToInt32(textBox4.Text); j++)
            {
                table.Cell(i, j).Range.Text= "(" + i + "行," + j + "列)" ;
            }
        }
        //定義插入圖片是否為外部鏈接
        Object linktofile = false;
        Object savedocument = true;
        Object range = worddoc.Paragraphs.Last.Range;                //定義圖片插入word位置
        worddoc.InlineShapes.AddPicture(textBox5.Text,ref linktofile,ref savedocument,ref range);
        //保存文檔
        path = textBox2.Text + "\\" + textBox1.Text;             //設置文件保存路勁
        worddoc.SaveAs(ref path, ref format, ref Nothing, ref Nothing, 
            ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, 
            ref Nothing, ref Nothing, ref Nothing, ref Nothing);
        //關閉文檔
        worddoc.Close(ref Nothing, ref Nothing, ref Nothing);  //關閉worddoc文檔對象
        wordApp.Quit(ref Nothing, ref Nothing, ref Nothing);   //關閉wordApp組對象
        MessageBox.Show("文檔創建成功!");
    }
}

三. 運行結果

點擊運行,填寫如下圖所示的內容,其中插入表格函數行數=8,列數=5並插入圖片:

點擊“創建”後,它會在E盤下創建一個test.docx的word文檔,同時填寫內容如下圖所示:

四. 補充知識

其中在插入圖片中我使用了一個InlineShapes.AddPicture函數,它相應的使用方法如下圖所示,來自https://technet.microsoft.com/zh-cn/library/ff822636

五. 總結

這篇文章主要是使用C#向創建word文檔中添加表格和圖片的操作,同時如果怎樣使用C#創建word還有不明白的可以參考前一篇文章https://blog.csdn.net/eastmount/article/details/11235577同時該文章有些內容思想來自劉麗霞等編寫的《C#範例開發大全》,感謝作者,同時希望大家能看看這本書籍,最後希望文章對大家有幫助,同時有不足或錯誤的地方,見諒!

(By:Eastmount 2013-9-8 夜1點https://blog.csdn.net/eastmount/)

最後更新:2017-04-03 15:21:43

  上一篇:go dm642在線寫EPROM.txt
  下一篇:go 在bmp上添加字符