1. 程式人生 > >C#操作Word(五)——在Word文件中插入圖片

C#操作Word(五)——在Word文件中插入圖片

例項說明
在Word文件的使用過程中,我們可以輕鬆的向文件中插入圖片資訊,那麼,怎樣使用C#向Word文件中插入圖片呢?本例項將會介紹一種方法,可以方便的實現上述功能。例項執行效果如圖1所示。
 
圖1  在Word文件中插入圖片
例項執行中單擊“建立Word文件”按鈕,會根據使用者選擇的路徑位置建立Word文件並向文件中新增圖片,而文件的名稱就是當前系統日期與時間。建立的Word文件如圖2所示。
 
圖2  被插入圖片的Word文件
關鍵技術
本例項重點在於向讀者介紹怎樣使用InlineShapes集合的AddPicture方法向Word文件中插入圖片,下面對本例項用到的關鍵技術進行詳細講解。
使用Documents物件的Add方法可以建立Word文件,使用Open方法可以開啟Word文件,當得到文件物件後可以根據InlineShapes屬性得到InlineShape物件的集合,InlineShape物件包括圖片、ActiveX控制元件等資訊。使用InlineShapes集合的AddPicture方法可以方便的向文件中插入圖片,AddPicture方法的語法格式如下:
InlineShape AddPicture(string FileName, ref object LinkToFile, ref object SaveWithDocument, ref object Range);
AddPicture方法中的引數說明如表1所示。
表1 AddPicture方法中的引數說明

引數

描述

? FileName

將要插入的圖片檔名稱及路徑

? LinkToFile

如果為true,則將圖片連結到建立該物件的檔案;如果為false則將圖片作為該檔案的獨立副本,預設為false

? SaveWithDocument

如果為true,則連結的圖片與工作表一起儲存,預設為false

? Range

插入圖片的範圍


? 設計過程
(1)開啟Visual Studio 2008開發環境,新建一個Windows窗體應用程式,命名為AddImage。
(2)使用C#操作Word文件,需要引用相關的COM元件,引用COM元件的步驟請參照例項002中的設計過程。
(3)更改預設窗體Form1的Name屬性為Frm_Main,更改Text屬性為“在Word文件中插入圖片”,並向窗體中新增兩個TextBox控制元件,控制元件分別用顯示圖片路徑和顯示Word文件儲存路徑;向窗體中新增4個Button按鈕,這4個按鈕分別用於選擇向Word文件中插入的圖片、選擇Word文件儲存路徑、建立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;     //得到段落範圍
            object P_Ranges = P_Range;         //建立ojbect物件
            P_wd.InlineShapes.AddPicture(         //向文件中插入圖片
                G_OpenFileDialog.FileName, ref G_missing, ref G_missing, ref P_Ranges);
            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#程式設計詞典》

相關推薦

C#操作Word——在Word插入圖片

例項說明 在Word文件的使用過程中,我們可以輕鬆的向文件中插入圖片資訊,那麼,怎樣使用C#向Word文件中插入圖片呢?本例項將會介紹一種方法,可以方便的實現上述功能。例項執行效果如圖1所示。   圖1  在Word文件中插入圖片 例項執行中單擊“建立Word文件”按鈕,會根

Python入門篇操作和字符編碼

Python 文件操作和字符編碼 1、文件操作 1、文件操作流程: 打開文件,得到文件句柄並賦值給一個變量===> file = open("yesterday",encoding="utf-8") 通過句柄對文件進行操作 關閉文件 ==> file.close() 1.2、打開文件的

C# 操作rabbitmq

此篇介紹rabbitmq的RPC 一、雖然我們可以使用work queue給worker傳送訊息,但是如果我們希望在遠端伺服器上執行一個方法並且想要得到結果呢?rabbitmq的RPC功能可以實現。 二、 Callback queue,回撥佇列,在rabbi

Nginx-- 配置之Rewrite

log 技術分享 判斷 placement ble png per 大小寫 遠程 Rewrite支持URL重寫 1.常用指令以及語法   1) if指令    if語法: if 空格 (condition) {}    條件:    1. &ld

linux內核虛擬系統

偏移 進行 系統 smo 磁盤信息 就會 space 而是 就是 虛擬文件系統(VFS)是linux內核和具體I/O設備之間的封裝的一層共通訪問接口,通過這層接口,linux內核可以以同一的方式訪問各種I/O設備。 虛擬文件系統本身是linux內核的一部分,是純軟件的東西,

XML課後練習答案——XML編寫小測驗答案分享

題目:請用XML語言編寫描述下面的學生成績單的XML文件, 並請編寫該XML文件的文件型別定義DTD。 註解:平均成績那一欄是在xsl中用函式求的,在xml文件中只需要描述最基本結構即可,所以小夥伴看後面程式碼壓根沒有對這一欄的描述不用驚慌哦。這次分享是我自己的理解可能

GitHub筆記——忽略、配置別名、搭建服務器

ram 克隆 精確 系統 pat false you 服務器端 repos 六、忽略文件 忽略某些文件時,需要編寫.gitignore; .gitignore文件本身要放到版本庫裏,並且可以對.gitignore做版本管理! 忽略文件的原則是: 忽略操作系統

Django模板的循環

頭部 模板 doctype shortcuts ret response log title render 編輯views.py from django.shortcuts import render from django.shortcuts import HttpRe

libfastcommon總結加載配置信息

not eve icon 配置文件信息 獲取 結構化 har div ilo 頭文件為ini_file_reader.h 主要接口  IniContext iniContext;//定義配置文件信息 iniLoadFromFile();//加載文件為結構化配置信息

MFC多獲取檢視指標

多文件系列 MFC多文件(一):檢視中獲取文件指標 MFC多文件(二):文件中獲取檢視指標 MFC多文件(三):文件與檢視繫結     問題 文件與檢視繫結後,在文件中如何獲取檢視指標?   解決方法 1、NaviMarkDo

[PDF檔案怎麼編輯]如何在PDF插入圖片

  收到一份PDF格式文件需要進行編輯,檔案中只有文字內容,需要在頁面中為對應的配圖,也就是在PDF中新增圖片,作為一個只懂得用閱讀器來檢視文件人來說,編輯PDF檔案可謂是一件難事,這種格式的檔案是如何編輯的呢?   首先對PDF文件內容的修改需要用到對應的PDF編輯

C#操作Word總結——設定格式並新增文字內容、超連結、新增圖片

      設定文件格式並新增內容 #region 設定文件格式並新增文字內容、超連結 /// <summary> /// 設定文件格式並新增內容 /// </summary> /// <param name="filePath">檔名&

C# 操作word總結——建立和新增頁首頁尾

      最近程式中經常使用到word的操作,我在網上查了一些資料,在這裡整理一下。       使用程式碼建立word文件: #region 新建Word文件 /// <summary> /// 動態生成Word文件並填充內容 /// </summa

jQuery操作處理:append()、prepend()、after()、before()、wrap()、wrapAll()、wrapInner()、clone()等

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>文件操作處理</title>

Unity3D學習筆記二十操作

log gin fin 不同 ati text組件 內容 mono www 文件是什麽? 存儲在硬盤上的最後的節點。 文件夾是什麽? 文件的上級單位稱為文件夾。 文件夾的基本結構? 文件夾是層級化結構的,對於同級的文件夾不可以重名,父文件夾和子文件夾可以同名》 IO:I是I

SCCM 2016 使用PXE 部署操作系統

mage process sta wds 序列 客戶端安裝 啟動服務 開始 proc 今天我們來測試一下上四篇文章我們配置完成的 SCCM PXE 推送操作系統的配置是否起效。順便提及一下可能出現的問題。首先,我們需要配置我們的DHCP服務器,從而將PXE功能指向到我們的S

boost_1_34_1在c++builder6編譯把所有dll復制到windows系統目錄,所以lib復制到bcb6lib目錄

解壓 string unit source bject 找到 nbsp catch charset boost_1_34_1.zip boost 正則表達式 bcb6編譯boost_1_34 有個項目要對大量的文本信息進行分析,以前的方法是自己寫函數然後進行

File 操作

blog www 指定編碼 st3 內容修改 bsp 如果 class () 一、文件讀寫模式 1、文件的幾種模式: 格式:f=open("文件名","模式",encode="utf-8") 1 #文件的只讀模式 2 f1=open("test1","r",en

嵌入式之 C 語言編譯器

net DC 應用 不同 %s 翻譯 根據 oba 直接 我們在嵌入式的開發中經常會見到 GCC 和 gcc,那麽它們兩有何不同呢?GCC(GNU Compile Collection) 是指 GNU 編譯器集合,包含眾多語言的編譯器,如 C、C++、Jav

C++語言學習——C++語言中的CV限定符錯誤

val ber char 返回 names main code 3.1 類的靜態成員 C++語言學習(五)——C++語言中的CV限定符錯誤 ?一、CV限定符錯誤簡介 1、CV限定符簡介 CV限定符即cv-qualifier,C++語言中指const和volatile限定符。