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;
}
分享到:
相关推荐
58<br><br>0081 文本中首字母改为大写 59<br><br>0082 C#随机数的产生 59<br><br>0083 身份证从15位升至18位算法 60<br><br>0084 十进制数转二进制数的算法 60<br><br>0085 十进制数转八进制数的算法 61...
273<br>实例190 获取窗口文本 273<br>实例191 判断文件是否正在被使用 274<br>实例192 在程序中调用.HLP文件 275<br>实例193 C#中实现文件拖放 276<br>实例194 文件比较 276<br>第7章 操作系统与Windows...
│ ├─实例27 如何直接打印文件<br>│ │ ├─实例28 如何操作帮助文件<br>│ │ ├─实例29 如何操作WORD文件<br>│ │ ├─实例31 如何播放MP3文件<br>│ │ ├─实例32 如何播放VCD文件<br>│ │ ├─实例33 ...
│ ├─实例27 如何直接打印文件<br>│ │ ├─实例28 如何操作帮助文件<br>│ │ ├─实例29 如何操作WORD文件<br>│ │ ├─实例31 如何播放MP3文件<br>│ │ ├─实例32 如何播放VCD文件<br>│ │ ├─实例33 ...
第五章<br>案例1读写文本文件<br>案例2读写Word文档<br>案例3操作Example图表<br>案例3如何绘制Example三维曲面图<br>案例4设置和获取文件属性<br>案例5拷贝删除浏览文件<br>案例6检索文件或目录属性<br>案例7获取...
第8章 注册表 339<br>8.1 操作注册表 340<br>实例241 怎样存取注册表信息 340<br>实例242 注册表保存注册信息 341<br>实例243 设置“显示 属性”窗体 342<br>实例244 列出注册表指定项下全部键值 343<br...
566<br>实例386 分组统计报表 569<br>实例387 在水晶报表中添加图表 571<br>11.3 水晶报表基本操作 574<br>实例388 在水晶报表中使用Access数据库 575<br>实例389 在水晶报表中使用SQL Server数据库 576...
C#操作Word文档,实现文字写入 本实例主要讲述了使用C#操作Word文档,实现文字写入功能。通过使用Word文档中的Range属性,能够轻松地向Word文档中添加文本内容。本实例中,首先创建了一个Windows窗体应用程序,然后...
586<br>11.4 子报表的使用 588<br>实例396 插入子报表 588<br>实例397 编辑与重新导入子报表 589<br>实例398 根据需要显示子报表 591<br>11.5 调用Office进行打印 593<br>实例399 利用Word打印员工报表 ...
(外加图片插入功能)知道最近C#课程设计有这个题,提前完成,跟大家分享一下,特别是浙工大的同学<br>按照实验要求,设计一个多文档文本编辑器,能够实现对文本的编辑、排版、打印等。程序启动时要有密码输入提示,...
以上就是C#操作Word文档的一些核心知识点和常见操作,通过这些方法可以实现对Word文档的读取、编辑和创建。在实际开发中,根据具体需求,还可以结合其他高级特性,如模板应用、邮件合并、宏执行等。
根据提供的文件信息,我们可以归纳出两个主要的知识点:一是如何使用C#操作Word文档并插入图片;二是如何利用C#批量替换Word文档中的书签文本。下面将对这两个知识点进行详细解析。 ### 一、使用C#操作Word文档并...
3. 构建HTML结构:根据Word文档的元素创建对应的HTML结构,如`<p>`(段落)、`<h1>`至`<h6>`(标题)和`<ul>`或`<ol>`(列表)。 4. 转换样式:将Word文档的样式映射到CSS样式,例如,创建CSS类来表示不同的字体、...
在C#中,我们可以定义一个泛型类`Node<T>`来表示单链表中的节点。这个类有两个字段:`nextNode`表示后继节点,`data`用于存储类型为T的数据。例如: ```csharp public class Node<T> { public Node<T> nextNode; ...
### C#操作Word书签模板知识点详解 #### 一、制作Word书签模板 1. **新建文档**:首先创建一个新的Word文档,并设置好需要的内容。对于需要循环展示的部分(如列表或表格),建议将其放入表格中进行管理,因为表格...
本示例"C#将WORD转换为PDF的Demo"是使用C#编程语言在ASP.NET环境中实现的一个具体应用,旨在帮助开发者了解如何将Microsoft Word文档转换为PDF格式。此程序依赖于服务器上安装的Office 2010,因为它利用了Microsoft ...
综上所述,"C#实现word转图片"涉及到的知识点包括C#编程、Adobe Professional API(尽管不是直接使用)、Ghostscript的集成、进程调用、图像处理、文件I/O、异常处理、多线程编程、设计模式以及服务器部署和配置。...
C#操作Word.doc C#操作Word表格.doc C#操作WORD辅助类.txt c#操作word模板插入文字、图片及表格.doc C#操作Word在Word文档中插入图片.docx C#用word模板做文档.doc 收集的C#操作Word的各种代码。直接复制粘贴到程序...
主要功能:<br>1.多用户注册各自使用,互不干予。<br>2.在自己的空间中上传多文件及大文件进行在线查看管理,可建多级目录存放。<br>3.文件目录多级共享,可共享整个用户空间。<br>4.树状显示系统功能和目录结构,...
<br>还可以对新闻信息进行编辑及删除,单击“编辑”按钮,进入如图2.4所示的页面,信息修改完成后,单击“保存”按钮,完成修改操作。单击“删除”按钮,直接删除信息。<br> <br>图2.4 新闻编辑页面<br>后台是按照...