当前位置:首页 > Windows程序 > 正文

C# 操作Word知识汇总

2021-03-26 Windows程序

1. 微软官方实例:

段落、表格、图表

HOW TO:利用 Visual C# .NET 使 Word 自动新建文档

2. 学习资源

(1)Word in the Office 基础知识,必读,下面的总结里有内容摘要

网友翻译版:

(2)Word类的结构图,,Application、document、Range、Selection等,必读

(3)word 2007 对象模型 :

%28v=office.12%29.aspx

(4)Microsoft.Office.Interop.Word

%28v=Office.11%29.aspx

(5)WPS 二次开发接口文档 wpsapi.chm

中文方便阅读,CSDN下载

(6)飞蛾 Word VBA 参考教程

全中文Word类库,必读

(7)用VBA宏提高Word操作效率——需要精研的20个经典实例

3.一些总结

(1)Document 代表一个具体的word文档, Documents 是 Document的集合,用index索引来表示某一个document。ActiveDocument属性是当前焦点(focus)的document。我们一般不会用索引来引用文档,因为索引值会随着文档的打开和关闭而改变;通常我们用 ActiveDocument属性,或者 Documents 集合的Add 或 Open方法返回的document对象变量来引用。Add或Open的document会成为 ActiveDocument,如果想使其它document成为activeDocument,则使用 document对象的ActiveDocument方法。

用文件名指明具体Documnet,Documents("Report.doc").Activate();

(2) characters组成words,words组成sentences,sentences组成paragraphs,因此一个document中会包含这样四个集合: Characters Words, Sentences ,Paragraphs collection。此外,document还可能包含sections的集合,而一个section又会有HeadersFooters 页眉页脚集合。

(3)Paragraph段落,由一个段落标志和所有文本组成。拷贝段落时如果包含了段落标志,则段落格式也会一同拷贝。不想拷贝格式的话就不要拷贝段落标志。

(3)Range对象,代表一块连续的由起始字符和结束字符定义的区域,可以小到只有一个插入光标或大至整个文档内容,它也可以是但并不必须是当前selection代表的区域。可以在一个文档中定义多个Range对象。

我们通常用Range类定义一个变量来创建Range对象,然后用Document的Range方法或其它对象的Range属性来实例化这个Range对象。

(4)Selection对象

可代表光标

该对象代表窗口或窗格中的当前所选内容。所选内容代表文档中被选定(或突出显示的)的区域,若文档中没有所选内容,则代表插入点。每个文档窗格只能有一个活动的 Selection对象,并且整个应用程序中只能有一个活动的 Selection对象。
使用 Selection对象
使用Selection属性可返回 Selection对象。如果没有使用 Selection属性的对象识别符,Word 将返回活动文档窗口的活动窗格中的所选内容。

Text属性是其选中的内容

Copy、Cut、Paste方法进行复制、剪切、粘贴等操作

(5)sections

Sections.Add 方法

该方法用于返回一个 Section 对象,该对象表示添加至文档中的新节。
Function Add([Range As Range = 0],  [Start As WpsSectionStart = 2]) As Section

参数说明
Range    Variant 类型,可选。在其之前插入分节符的区域。如果忽略本参数,则将分节符插至文档末尾。
Start    Variant 类型,可选。要添加的分节符类型。WpsSectionStart 类型。如果忽略本参数,则添加“下一页”类型的分节符。
    WpsSectionStart 类型可以是下列常量之一:
    值     描述
    wpsSectionContinuous     连续分节符
    wpsSectionEvenPage     偶数页分节符
    wpsSectionNewColumn     节的结尾
    wpsSectionNewPage     下一页分节符(默认)
    wpsSectionOddPage     奇数页分节符

Sections 参考MSDN

Section  参考MSDN

4. 具体使用

(1)如何设置标题样式,“标题一”,“标题二”等 参考

[c-sharp] view plaincopy

 

public void AddTitle(string s)  

{  

    //Word段落  

    Word.Paragraph p;  

    p = oDoc.Content.Paragraphs.Add(ref missing);  

    //设置段落中的内容文本  

    p.Range.Text = s;  

    //设置为一号标题  

    object style = Word.WdBuiltinStyle.wdStyleHeading1;  

    p.set_Style(ref style);  

    //添加到末尾  

    p.Range.InsertParagraphAfter();  //在应用 InsertParagraphAfter 方法之后,所选内容将扩展至包括新段落。  

}  

/// <summary>  

/// 添加普通段落  

/// </summary>  

/// <param name="s"></param>  

public void AddParagraph(string s)  

{  

    Word.Paragraph p;  

    p = oDoc.Content.Paragraphs.Add(ref missing);  

    p.Range.Text = s;  

    object style = Word.WdBuiltinStyle.wdStyleBodyText;  

    p.set_Style(ref style);  

    p.Range.InsertParagraphAfter();  

}  

(2)如何插入表格

使用Word的Table类,有人还使用DataTable类进行辅助

(3)如何插入图片

InlineShapes是Word中内嵌的图形等资源

[c-sharp] view plaincopy

 

public void InsertImage(string strPicPath, float picWidth, float picHeight)  

        {  

            string FileName = strPicPath;  

            object LinkToFile = false;  

            object SaveWithDocument = true;  

            object Anchor = oWord.Selection.Range;  

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/67615.html