未完成,以后会陆续更新 最近更新日期2006-6-6 版本word2003 在web.config中加入
using System; using Word; using Excel; using System.Data; using System.Web.UI.HtmlControls; using System.IO; namespace ToPDF.Office { ///
/// 操作word文档 /// public class OperWord { private Word.ApplicationClass MyWordApp; private Word.Document MyDoc; private Word.Range MyRange; private Word.Selection MySel; public OperWord() { MyWordApp = new Word.ApplicationClass();//构造ApplicationClass类的对象 } #region 选择文本 ///
/// 选择文本 /// ///
段落 public void SelectRange(int para) { MyDoc = new Word.DocumentClass(); MyRange = MyDoc.Paragraphs[para].Range; MyRange.Select(); } ///
/// 选择文本 /// ///
/段落 ///
/句子 public void SelectRange(int para,int Sentences) { MyRange = MyDoc.Paragraphs[para].Range.Sentences[Sentences]; MyRange.Select(); } ///
/// 选择文本 /// ///
/开始处 ///
/结束处 ///
/是否选择 public void SelectRange(object Stat,object End,bool flag) { if(flag) { MyDoc.Range(ref Stat, ref End); MyRange.Select(); } } #endregion #region 生成新文档 ///
/// 生成空的新文档 /// public void NewDoc() { object missing = System.Reflection.Missing.Value; MyDoc = MyWordApp.Documents.Add(ref missing,ref missing,ref missing,ref missing); MyDoc.Activate(); } ///
/// 使用生成新文档 /// ///
/ public void NewDoc(string FileName) { object missing = System.Reflection.Missing.Value; object isVisble = true; object fileName = FileName; MyDoc = MyWordApp.Documents.Add(ref fileName,ref missing,ref missing,ref isVisble); MyDoc.Activate(); } #endregion #region 打开存在的文档 ///
/// 打开存在的文档 /// ///
/文件名 ///
/是否只读 public void OpenFile(string FileName,bool ReadOnly) { object fileName; object isReadOnly; object isVisible; object missing = System.Reflection.Missing.Value; fileName = FileName; isReadOnly = ReadOnly; isVisible = false; MyDoc = MyWordApp.Documents.Open(ref fileName,ref missing,ref isReadOnly,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref isVisible,ref missing,ref missing,ref missing,ref missing); MyDoc.Activate();//使当前文本获得焦点 } #endregion #region 退出word ///
/// 退出word /// ///
/保存类型0:自动保存1:提示保存2:不保存 public void Quit(int SaveType) { object Save; object missing = Type.Missing; Save = Word.WdSaveOptions.wdPromptToSaveChanges; switch(SaveType) { case 0: Save = Word.WdSaveOptions.wdSaveChanges; break; case 1: Save = Word.WdSaveOptions.wdPromptToSaveChanges; break; case 2: Save = Word.WdSaveOptions.wdDoNotSaveChanges; break; } MyWordApp.Quit(ref Save,ref missing,ref missing); MyWordApp = null; } #endregion #region 关闭文档 ///
/// 关闭文档 /// ///
/0:当前文档,1:所有文档 public void CloseFile(int type) { object saveType = Word.WdSaveOptions.wdDoNotSaveChanges; object missing = Type.Missing; if (type== 0) { MyWordApp.Documents.Close(ref saveType,ref missing,ref missing); } else { MyDoc.Close(ref saveType,ref missing, ref missing); Quit(2); } } #endregion #region 保存文档 public string SaveFile(string FileName) { object fName = FileName; object missing = Type.Missing; try { MyDoc.SaveAs(ref fName,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); } catch(Exception e) { return e.Message.ToString(); } return "true"; } #endregion #region 插入 ///
/// 插入空行 /// public void Insert() { MyWordApp.Selection.TypeParagraph(); } ///
/// 插入指定得空行数 /// ///
public void Insert(int lines) { for (int i = 0; i < lines; i++) { MyWordApp.Selection.TypeParagraph(); } } ///
/// 插入文本 /// ///
public void Insert(String text) { MyWordApp.Selection.TypeText(text); } ///
/// 插入 /// ///
/表 public void Insert(DataTable table) { Word.Table WTable; int NumRows,NumColumns; object missing = Type.Missing; NumRows = table.Rows.Count; NumColumns = table.Columns.Count; WTable = MyDoc.Tables.Add(MyWordApp.Selection.Range,NumRows,NumColumns,ref missing,ref missing); for (int i = 1; i <= table.Rows.Count; i++) { for (int j = 1; j <= table.Columns.Count; j++) { WTable.Cell(i,j).Range.Text = table.Rows[i-1].ItemArray[j-1].ToString(); } } } #endregion #region 读取 ///
/// 读取一段 /// ///
/第几段 ///
/是否只读 ///
public string Read(int ParaCount,bool ReadOnly) { string txt = Convert.ToString(MyDoc.Paragraphs[ParaCount].Range.Text); return txt; } ///
/// 读取指定长度 /// ///
/开始位置 ///
/结束位置 ///
public string Read(int Start,int End) { object start = Start; object end = End; string txt = ""; txt = Convert.ToString(MyDoc.Range(ref start,ref end).Text); return txt; } #endregion #region 表相关操作 ///
/// 读取表的位置 /// ///
/哪个表 public Word.Range TableLocation(int TableIndex) { MyRange = MyDoc.Tables[TableIndex].Range; return MyRange; } ///
/// 当前文档内有几个表 /// ///
public int TableCount() { return MyDoc.Tables.Count; } ///
/// 返回一个表的内容 /// ///
/哪个表 ///
public Word.Table Read(int TableIndex) { return MyDoc.Tables[TableIndex]; } #endregion #region 得到当前文件信息 public int[] GetFileInfo(string FileName) { int[] FileInfo = new Int32[6];//章节数,包含空行了章节数,行数,页数,段落数,字数; OpenFile(FileName,true); object IncludeFootnotesAndEndnotes = false; FileInfo[0] = MyDoc.ComputeStatistics(Word.WdStatistic.wdStatisticCharacters,ref IncludeFootnotesAndEndnotes); FileInfo[1] = MyDoc.ComputeStatistics(Word.WdStatistic.wdStatisticCharactersWithSpaces,ref IncludeFootnotesAndEndnotes); FileInfo[2] = MyDoc.ComputeStatistics(Word.WdStatistic.wdStatisticLines,ref IncludeFootnotesAndEndnotes); FileInfo[3] = MyDoc.ComputeStatistics(Word.WdStatistic.wdStatisticPages,ref IncludeFootnotesAndEndnotes); FileInfo[4] = MyDoc.ComputeStatistics(Word.WdStatistic.wdStatisticParagraphs,ref IncludeFootnotesAndEndnotes); FileInfo[5] = MyDoc.ComputeStatistics(Word.WdStatistic.wdStatisticWords,ref IncludeFootnotesAndEndnotes); return FileInfo; } #endregion #region 段落操作 ///
/// 读取段落的位置 /// ///
/哪个段落 ///
public Word.Range ParagraphLocation(int ParaIndex) { return MyDoc.Paragraphs[ParaIndex].Range; } ///
/// 当前文档有多少个段落 /// ///
public int ParagraphCount() { return MyDoc.Paragraphs.Count; } ///
/// 读取指定段落内容 /// ///
///
public string ParagraphText(int ParaIndex) { return MyDoc.Paragraphs[ParaIndex].Range.Text; } ///
/// 得到当前段落的字体属性 /// ///
///
public Word.Font ParagraphFont(int ParaIndex) { return MyDoc.Paragraphs[ParaIndex].Range.Font; } #endregion } }