using System; using System.Collections.Generic; using System.Text; using Microsoft.Office.Interop.Word; using System.Diagnostics; namespace OfficeManager { public class WordClass : IDisposable { #region 字段 private _Application m_WordApp = null; private _Document m_Document = null; private object missing = System.Reflection.Missing.Value; #endregion #region 构造函数与析构函数 public WordClass() { m_WordApp = new ApplicationClass(); } ~WordClass() { try { if (m_WordApp != null) m_WordApp.Quit(ref missing, ref missing, ref missing); } catch (Exception ex) { Debug.Write(ex.ToString()); } } #endregion #region 属性 public _Document Document { get { return m_Document; } } public _Application WordApplication { get { return m_WordApp; } } public int WordCount { get { if (m_Document != null) { Range rng = m_Document.Content; rng.Select(); return m_Document.Characters.Count; } else return -1; } } public object Missing { get { return missing; } } #endregion #region 基本任务 #region CreateDocument public void CreateDocument(string template) { object obj_template = template; if (template.Length <= 0) obj_template = missing; m_Document = m_WordApp.Documents.Add(ref obj_template, ref missing, ref missing, ref missing); } public void CreateDocument() { this.CreateDocument(""); } #endregion #region OpenDocument public void OpenDocument(string fileName, bool readOnly) { object obj_FileName = fileName; object obj_ReadOnly = readOnly; m_Document = m_WordApp.Documents.Open(ref obj_FileName, ref missing, ref obj_ReadOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); } public void OpenDocument(string fileName) { this.OpenDocument(fileName, false); } #endregion #region Save & SaveAs public void Save() { if (m_Document != null) m_Document.Save(); } public void SaveAs(string fileName) { object obj_FileName = fileName; if (m_Document != null) { m_Document.SaveAs(ref obj_FileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); } } #endregion #region Close public void Close(bool isSaveChanges) { object saveChanges = WdSaveOptions.wdDoNotSaveChanges; if (isSaveChanges) saveChanges = WdSaveOptions.wdSaveChanges; if (m_Document != null) m_Document.Close(ref saveChanges, ref missing, ref missing); } #endregion #region 添加数据 /// <summary> /// 添加图片 /// </summary> /// <param name="picName"></param> public void AddPicture(string picName) { if (m_WordApp != null) m_WordApp.Selection.InlineShapes.AddPicture(picName, ref missing, ref missing, ref missing); } /// <summary> /// 插入页眉 /// </summary> /// <param name="text"></param> /// <param name="align"></param> public void SetHeader(string text, WdParagraphAlignment align) { this.m_WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView; this.m_WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader; this.m_WordApp.ActiveWindow.ActivePane.Selection.InsertAfter(text); //插入文本 this.m_WordApp.Selection.ParagraphFormat.Alignment = align; //设置对齐方式 this.m_WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument; // 跳出页眉设置 } /// <summary> /// 插入页脚 /// </summary> /// <param name="text"></param> /// <param name="align"></param> public void SetFooter(string text, WdParagraphAlignment align) { this.m_WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView; this.m_WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryFooter; this.m_WordApp.ActiveWindow.ActivePane.Selection.InsertAfter(text); //插入文本 this.m_WordApp.Selection.ParagraphFormat.Alignment = align; //设置对齐方式 this.m_WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument; // 跳出页眉设置 } #endregion #region Print
|