`
ZOODragon
  • 浏览: 68832 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

<转>C#操作word

阅读更多

public  class  WordAPI
{
    
private object _template;
    
private object _newWord;
    
private Microsoft.Office.Interop.Word.Application wordApp;
    
private Microsoft.Office.Interop.Word.Document _wordDocument;
    
private object defaultV = System.Reflection.Missing.Value;
    
private object documentType;
    
/// <summary>
    
/// 构造函数
    
/// </summary>
    
/// <param name="template">模板文件位置</param>
    
/// <param name="newWord">保存位置</param>
    public WordAPI(string template,string newWord)
    {
        
this._template = template;
        
this._newWord = newWord;
        wordApp 
= new Application();
        documentType 
= Microsoft.Office.Interop.Word.WdDocumentType.wdTypeDocument;
        _wordDocument 
= wordApp.Documents.Add(ref _template, ref defaultV, ref documentType, ref defaultV);
    }
    
/// <summary>
    
/// 设置默认一页行数
    
/// </summary>
    
/// <param name="size"></param>
    public void SetLinesPage(int size)
    {
        wordApp.ActiveDocument.PageSetup.LinesPage 
= 40;
    }
    
/// <summary>
    
/// 设置书签的值
    
/// </summary>
    
/// <param name="markName">书签名</param>
    
/// <param name="markValue">书签值</param>
    public void SetBookMark(string markName, string markValue)
    {
        
object _markName =markName;
        
try
        {
            _wordDocument.Bookmarks.get_Item(
ref _markName).Range.Text = markValue;
        }
        
catch
        {
            
throw new Exception(markName + "未找到!!");
        }
    }
    
/// <summary>
    
/// 设置添加页眉
    
/// </summary>
    
/// <param name="context">内容</param>
    public void SetPageHeader(string context)
    {
        wordApp.ActiveWindow.View.Type 
= WdViewType.wdOutlineView;
        wordApp.ActiveWindow.View.SeekView 
= WdSeekView.wdSeekPrimaryHeader;
        wordApp.ActiveWindow.ActivePane.Selection.InsertAfter(context);
        wordApp.Selection.ParagraphFormat.Alignment 
=WdParagraphAlignment.wdAlignParagraphCenter;
        
//跳出页眉设置    
        wordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;   
    }
    
/// <summary>
    
/// 当前位置处插入文字
    
/// </summary>
    
/// <param name="context">文字内容</param>
    
/// <param name="fontSize">字体大小</param>
    
/// <param name="fontColor">字体颜色</param>
    
/// <param name="fontBold">粗体</param>
    
/// <param name="familyName">字体</param>
    
/// <param name="align">对齐方向</param>
    public void InsertText(string context, int fontSize, WdColor fontColor, int fontBold,string familyName, WdParagraphAlignment align)
    {
        
//设置字体样式以及方向    
        wordApp.Application.Selection.Font.Size = fontSize;
        wordApp.Application.Selection.Font.Bold 
= fontBold;
        wordApp.Application.Selection.Font.Color 
= fontColor;
        wordApp.Selection.Font.Name 
= familyName;
        wordApp.Application.Selection.ParagraphFormat.Alignment 
= align;
        wordApp.Application.Selection.TypeText(context);   

    }
    
/// <summary>
    
/// 翻页
    
/// </summary>
    public void ToNextPage()
    {
        
object breakPage = Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak;
        wordApp.Selection.InsertBreak(
ref breakPage);   
    }
    
/// <summary>
    
/// 焦点移动count段落
    
/// </summary>
    
/// <param name="count"></param>
    public void MoveParagraph(int count)
    {
        
object _count = count;
        
object wdP= WdUnits.wdParagraph;//换一段落
        wordApp.Selection.Move(ref wdP, ref _count);
    }
    
/// <summary>
    
/// 焦点移动count行
    
/// </summary>
    
/// <param name="count"></param>
    public void MoveRow(int count)
    {
        
object _count = count;
        
object WdLine =WdUnits.wdLine;//换一行
        wordApp.Selection.Move(ref WdLine, ref _count);
    }
    
/// <summary>
    
/// 焦点移动字符数
    
/// </summary>
    
/// <param name="count"></param>
    public void MoveCharacter(int count)
    {
        
object _count = count;
        
object wdCharacter = WdUnits.wdCharacter;
        wordApp.Selection.Move(
ref wdCharacter, ref _count);
    }
    
/// <summary>
    
/// 插入段落
    
/// </summary>
    public void ToNextParagraph()
    {
        wordApp.Selection.TypeParagraph();
//插入段落
    }

    
/// <summary>
    
/// 回车换行
    
/// </summary>
    public void ToNextLine()
    {
        wordApp.Selection.TypeParagraph();         
    }
    
/// <summary>
    
/// 当前位置插入图片
    
/// </summary>
    
/// <param name="picture"></param>
    public void InsertPicture(string picture)
    {         
        
//图片居中显示    
        wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
        wordApp.Application.Selection.InlineShapes.AddPicture(picture, 
ref defaultV, ref defaultV, ref defaultV);
    }
    
/// <summary>
    
/// 添加表格
    
/// </summary>
    
/// <param name="rowNum"></param>
    
/// <param name="cellNum"></param>
    
/// <returns></returns>
    public Table CreatTable(int rowNum,int cellNum)
    {
      
return  this._wordDocument.Tables.Add(wordApp.Selection.Range, rowNum, cellNum, ref defaultV, ref defaultV);
    }
    
/// <summary>
    
/// 设置列宽
    
/// </summary>
    
/// <param name="widths"></param>
    public void SetColumnWidth(float [] widths,Table tb)
    {
        
if (widths.Length > 0)
        {
            
int len =widths.Length;
            
for (int i = 0; i < len; i++)
            {
                tb.Columns[i].Width 
= widths[i];
            }
        }
    }
    
/// <summary>
    
/// 合并单元格
    
/// </summary>
    
/// <param name="tb"></param>
    
/// <param name="cells"></param>
    public void MergeColumn(Table tb, Cell[] cells)
    {
        
if (cells.Length > 1)
        {
            Cell c 
= cells[0];
            
int len = cells.Length;
            
for (int i = 1; i < len; i++)
            {
               c.Merge(cells[i]);
            }
        }
        wordApp.Selection.Cells.VerticalAlignment 
= WdCellVerticalAlignment.wdCellAlignVerticalCenter;

    }
    
/// <summary>
    
/// 设置单元格内容
    
/// </summary>
    
/// <param name="_c"></param>
    
/// <param name="v"></param>
    
/// <param name="align">对齐方式</param>
    public void SetCellValue(Cell _c, string v, WdParagraphAlignment align)
    {
        wordApp.Selection.ParagraphFormat.Alignment 
= align;
        _c.Range.Text 
= v;
    }

    
/// <summary>
    
/// 保存新文件
    
/// </summary>
    public void SaveAsWord()
    {
        
object doNotSaveChanges =Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
        
try
        {
            
object fileFormat = WdSaveFormat.wdFormatRTF;
            _wordDocument.SaveAs(
ref _newWord, ref fileFormat, ref defaultV, ref defaultV, ref defaultV, ref defaultV, ref defaultV, ref defaultV, ref defaultV,
                
ref defaultV, ref defaultV, ref defaultV, ref defaultV, ref defaultV, ref defaultV, ref defaultV);            
        }
        
catch (Exception e)
        {
            
throw new Exception(e.Message);
           
        }
        
finally
        {
            disponse();
        }
    }
    
/// <summary>
    
/// 释放资源
    
/// </summary>
    private void disponse()
    {
        
object missingValue = Type.Missing;
        
object doNotSaveChanges = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
        _wordDocument.Close(
ref doNotSaveChanges, ref missingValue, ref missingValue);
        wordApp.Application.Quit(
ref defaultV, ref defaultV, ref defaultV);
        _wordDocument 
= null;
        wordApp 
= null;
    }

分享到:
评论

相关推荐

    C#编程经验技巧宝典

    58&lt;br&gt;&lt;br&gt;0081 文本中首字母改为大写 59&lt;br&gt;&lt;br&gt;0082 C#随机数的产生 59&lt;br&gt;&lt;br&gt;0083 身份证从15位升至18位算法 60&lt;br&gt;&lt;br&gt;0084 十进制数转二进制数的算法 60&lt;br&gt;&lt;br&gt;0085 十进制数转八进制数的算法 61...

    C#.net_经典编程例子400个

    273&lt;br&gt;实例190 获取窗口文本 273&lt;br&gt;实例191 判断文件是否正在被使用 274&lt;br&gt;实例192 在程序中调用.HLP文件 275&lt;br&gt;实例193 C#中实现文件拖放 276&lt;br&gt;实例194 文件比较 276&lt;br&gt;第7章 操作系统与Windows...

    C#源码大集合 01(共3卷)

    │ ├─实例27 如何直接打印文件&lt;br&gt;│ │ ├─实例28 如何操作帮助文件&lt;br&gt;│ │ ├─实例29 如何操作WORD文件&lt;br&gt;│ │ ├─实例31 如何播放MP3文件&lt;br&gt;│ │ ├─实例32 如何播放VCD文件&lt;br&gt;│ │ ├─实例33 ...

    C#源码大集合 03(共3卷)

    │ ├─实例27 如何直接打印文件&lt;br&gt;│ │ ├─实例28 如何操作帮助文件&lt;br&gt;│ │ ├─实例29 如何操作WORD文件&lt;br&gt;│ │ ├─实例31 如何播放MP3文件&lt;br&gt;│ │ ├─实例32 如何播放VCD文件&lt;br&gt;│ │ ├─实例33 ...

    C#.NET案例开发集锦代码5,6章

    第五章&lt;br&gt;案例1读写文本文件&lt;br&gt;案例2读写Word文档&lt;br&gt;案例3操作Example图表&lt;br&gt;案例3如何绘制Example三维曲面图&lt;br&gt;案例4设置和获取文件属性&lt;br&gt;案例5拷贝删除浏览文件&lt;br&gt;案例6检索文件或目录属性&lt;br&gt;案例7获取...

    C#程序开发范例宝典8

    第8章 注册表 339&lt;br&gt;8.1 操作注册表 340&lt;br&gt;实例241 怎样存取注册表信息 340&lt;br&gt;实例242 注册表保存注册信息 341&lt;br&gt;实例243 设置“显示 属性”窗体 342&lt;br&gt;实例244 列出注册表指定项下全部键值 343&lt;br...

    C#程序开发范例宝典11part1

    566&lt;br&gt;实例386 分组统计报表 569&lt;br&gt;实例387 在水晶报表中添加图表 571&lt;br&gt;11.3 水晶报表基本操作 574&lt;br&gt;实例388 在水晶报表中使用Access数据库 575&lt;br&gt;实例389 在水晶报表中使用SQL Server数据库 576...

    C#操作Word——C#向Word文档中写入文字

    C#操作Word文档,实现文字写入 本实例主要讲述了使用C#操作Word文档,实现文字写入功能。通过使用Word文档中的Range属性,能够轻松地向Word文档中添加文本内容。本实例中,首先创建了一个Windows窗体应用程序,然后...

    c#程序开发范例宝典 11章

    586&lt;br&gt;11.4 子报表的使用 588&lt;br&gt;实例396 插入子报表 588&lt;br&gt;实例397 编辑与重新导入子报表 589&lt;br&gt;实例398 根据需要显示子报表 591&lt;br&gt;11.5 调用Office进行打印 593&lt;br&gt;实例399 利用Word打印员工报表 ...

    C#多文档文本编译器

    (外加图片插入功能)知道最近C#课程设计有这个题,提前完成,跟大家分享一下,特别是浙工大的同学&lt;br&gt;按照实验要求,设计一个多文档文本编辑器,能够实现对文本的编辑、排版、打印等。程序启动时要有密码输入提示,...

    C#操作word文档(多种方法)

    以上就是C#操作Word文档的一些核心知识点和常见操作,通过这些方法可以实现对Word文档的读取、编辑和创建。在实际开发中,根据具体需求,还可以结合其他高级特性,如模板应用、邮件合并、宏执行等。

    C#操作word文档 C#实现Word中表格信息读取

    根据提供的文件信息,我们可以归纳出两个主要的知识点:一是如何使用C#操作Word文档并插入图片;二是如何利用C#批量替换Word文档中的书签文本。下面将对这两个知识点进行详细解析。 ### 一、使用C#操作Word文档并...

    c#调用openxml组件对html与word进行互相转换

    3. 构建HTML结构:根据Word文档的元素创建对应的HTML结构,如`&lt;p&gt;`(段落)、`&lt;h1&gt;`至`&lt;h6&gt;`(标题)和`&lt;ul&gt;`或`&lt;ol&gt;`(列表)。 4. 转换样式:将Word文档的样式映射到CSS样式,例如,创建CSS类来表示不同的字体、...

    C# 数据结构 doc

    在C#中,我们可以定义一个泛型类`Node&lt;T&gt;`来表示单链表中的节点。这个类有两个字段:`nextNode`表示后继节点,`data`用于存储类型为T的数据。例如: ```csharp public class Node&lt;T&gt; { public Node&lt;T&gt; nextNode; ...

    C#操作word模板

    ### C#操作Word书签模板知识点详解 #### 一、制作Word书签模板 1. **新建文档**:首先创建一个新的Word文档,并设置好需要的内容。对于需要循环展示的部分(如列表或表格),建议将其放入表格中进行管理,因为表格...

    C#将WORD转换为PDF的Demo

    本示例"C#将WORD转换为PDF的Demo"是使用C#编程语言在ASP.NET环境中实现的一个具体应用,旨在帮助开发者了解如何将Microsoft Word文档转换为PDF格式。此程序依赖于服务器上安装的Office 2010,因为它利用了Microsoft ...

    C#实现word转图片

    综上所述,"C#实现word转图片"涉及到的知识点包括C#编程、Adobe Professional API(尽管不是直接使用)、Ghostscript的集成、进程调用、图像处理、文件I/O、异常处理、多线程编程、设计模式以及服务器部署和配置。...

    C# 操作 Word 代码大全

    C#操作Word.doc C#操作Word表格.doc C#操作WORD辅助类.txt c#操作word模板插入文字、图片及表格.doc C#操作Word在Word文档中插入图片.docx C#用word模板做文档.doc 收集的C#操作Word的各种代码。直接复制粘贴到程序...

    桃源网络硬盘.Net v5.2

    主要功能:&lt;br&gt;1.多用户注册各自使用,互不干予。&lt;br&gt;2.在自己的空间中上传多文件及大文件进行在线查看管理,可建多级目录存放。&lt;br&gt;3.文件目录多级共享,可共享整个用户空间。&lt;br&gt;4.树状显示系统功能和目录结构,...

    都市网络新闻中心系统源码

    &lt;br&gt;还可以对新闻信息进行编辑及删除,单击“编辑”按钮,进入如图2.4所示的页面,信息修改完成后,单击“保存”按钮,完成修改操作。单击“删除”按钮,直接删除信息。&lt;br&gt; &lt;br&gt;图2.4 新闻编辑页面&lt;br&gt;后台是按照...

Global site tag (gtag.js) - Google Analytics