C#对Word文档的部分操作笔记
2020-01-15 09:35
1166 查看
C#对word文档的部分操作,主要是在Web服务中对word进行的操作:
使用的Microsoft.Office.Interop.Word.dll (12版)对Office2003进行的一些操作。
在进行word文档操作前先使用:
using Microsoft.Office.Interop.Word;
定义下这几个变量:
ublic Application m_App = null; //表示一个word应用程序 public Document m_Doc = null; //表示一个word文档 private object m_NullObj = System.Reflection.Missing.Value;//参数
打开一个word文档:
/// <summary> /// 打开一个word文档,输入文件完整路径,成功返回true /// </summary> /// <returns>bool</returns> public bool OpenWordDoc(string path) { try { m_App = new Application(); object fileObj = path; //打开指定文件(不同版本的COM参数个数有差异,一般而言除第一个外都用nullobj就行了) m_Doc = m_App.Documents.Open( ref fileObj, ref m_NullObj, ref m_NullObj, ref m_NullObj, ref m_NullObj, ref m_NullObj, ref m_NullObj, ref m_NullObj, ref m_NullObj, ref m_NullObj, ref m_NullObj, ref m_NullObj, ref m_NullObj, ref m_NullObj, ref m_NullObj, ref m_NullObj); return true; } catch (System.Exception ex) { if (m_Doc != null) { WdSaveOptions saveChange = WdSaveOptions.wdDoNotSaveChanges; //关闭文件 不保存 m_Doc.Close(saveChange, ref m_NullObj, ref m_NullObj); } if (m_App != null) { //关闭COM m_App.Quit(ref m_NullObj, ref m_NullObj, ref m_NullObj); } return false; } }
关闭word文档:
public bool CloseWordDoc() { try { WdSaveOptions saveChange = WdSaveOptions.wdDoNotSaveChanges; //关闭文件 不保存 m_Doc.Close(saveChange, ref m_NullObj, ref m_NullObj); //关闭COM m_App.Quit(ref m_NullObj, ref m_NullObj, ref m_NullObj); return true; } catch (System.Exception ex) { return false; } }
获取文档内容:
/// <summary> /// 获取word文档的文本内容 /// </summary> /// <returns></returns> public string GetContent() { string ConText = m_Doc.Content.Text; return ConText; }
获取word文档的中总页面数:
View Code/// <summary> /// 获取word文档的中总页面数 /// </summary> /// <returns></returns> public int GetPagesCount() { WdStatistic stat = WdStatistic.wdStatisticPages; int num = m_Doc.ComputeStatistics(stat, ref m_NullObj); return num; }
生成并获取文档摘要:
View Code/// <summary> /// 生成并获取文档摘要 /// </summary> /// <returns></returns> public string GetSummary() { string OutText = null; object Length = "25%"; object Mode = WdSummaryMode.wdSummaryModeInsert; bool typ = true; Range Rg = m_Doc.AutoSummarize(20, Mode, true); OutText = Rg.Text; if (OutText == null) { return "null"; } else { return OutText; } }
获取文档每一页的内容:(在这里尤其是需要注意在获取最后一页内容时的方法)
PageText即为每一页的内容
object What = Microsoft.Office.Interop.Word.WdGoToItem.wdGoToPage; object Which = Microsoft.Office.Interop.Word.WdGoToDirection.wdGoToNext; object m_NullObj = System.Reflection.Missing.Value; object start = null; object end = null; object PageN = 1; //PagesCount 为文档页面总数
start = WDoc.m_App.Selection.GoTo(ref What, ref Which, ref m_NullObj, ref PageN).Start;
for (int i = 1; i <= PagesCount; i++) { string PageText = "";
//获取文档的每一页的内容 //最后一页的获取方法 if (i==PagesCount) { PageN = i; start = WDoc.m_App.Selection.GoTo(ref What, ref Which, ref m_NullObj, ref PageN).Start; end = WDoc.m_App.Selection.EndKey(Microsoft.Office.Interop.Word.WdUnits.wdStory, Microsoft.Office.Interop.Word.WdMovementType.wdExtend); PageText = WDoc.m_App.Selection.Range.Text; } else { end = WDoc.m_Doc.ActiveWindow.Selection.GoToNext(Microsoft.Office.Interop.Word.WdGoToItem.wdGoToPage).Start; Microsoft.Office.Interop.Word.Range Rg = WDoc.m_Doc.Range(ref start, ref end); PageText = Rg.Text; start = end; } }
转载于:https://www.cnblogs.com/Longlycsu/archive/2012/04/18/2455763.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- C#操作Word(二)——将Word文档嵌入到WinForm窗体中
- C# Aspose.Word 操作word文档【二】
- C#操作Word文档
- C#操作word文档(一)
- C#操作word文档
- C#操作word文档(二)
- 黄聪:C#操作合并多个Word文档
- C#操作Word(一)——C#中向Word文档中插入Windows控件
- C# 中使用Word文档对图像进行操作
- C# WORD操作实现代码 笔记
- C# Aspose.Word 操作word文档【三】
- C#操作Word文档(Office 2007)
- C#操作Word (2)-- 打开&关闭Word文档
- C#操作word文档(二)
- office操作笔记:c#与excel之helloword
- C#操作Word文档(加密、解密、对应书签插入分页符)
- C#操作word文档
- C# 调用word进程操作文档关闭进程
- Solr入门之官方文档6.0阅读笔记系列(九) 第四部分 数据索引操作
- C#操作word文档(三)