首先步骤是:导入COM库:Microsoft word 11.0 Object Library.
创建新Word
- object oMissing = System.Reflection.Missing.Value;
- Word._Application oWord;
- Word._Document oDoc;
- oWord = new Word.Application();
- oWord.Visible = true;
- oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
- ref oMissing, ref oMissing);
打开文档:
- object oMissing = System.Reflection.Missing.Value;
- Word._Application oWord;
- Word._Document oDoc;
- oWord = new Word.Application();
- oWord.Visible = true;
- object fileName = @"E:CCCXCXXTestDoc.doc";
- oDoc = oWord.Documents.Open(ref fileName,
- ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
- ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
- ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
导入模板
- object oMissing = System.Reflection.Missing.Value;
- Word._Application oWord;
- Word._Document oDoc;
- oWord = new Word.Application();
- oWord.Visible = true;
- object fileName = @"E:XXXCCXTest.doc";
- oDoc = oWord.Documents.Add(ref fileName, ref oMissing,
- ref oMissing, ref oMissing);
添加新表
- object oMissing = System.Reflection.Missing.Value;
- Word._Application oWord;
- Word._Document oDoc;
- oWord = new Word.Application();
- oWord.Visible = true;
- oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
- ref oMissing, ref oMissing);
- object start = 0;
- object end = 0;
- Word.Range tableLocation = oDoc.Range(ref start, ref end);
- oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);
表插入行
- object oMissing = System.Reflection.Missing.Value;
- Word._Application oWord;
- Word._Document oDoc;
- oWord = new Word.Application();
- oWord.Visible = true;
- oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
- ref oMissing, ref oMissing);
- object start = 0;
- object end = 0;
- Word.Range tableLocation = oDoc.Range(ref start, ref end);
- oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);
- Word.Table newTable = oDoc.Tables[1];
- object beforeRow = newTable.Rows[1];
- newTable.Rows.Add(ref beforeRow);
单元格合并
- object oMissing = System.Reflection.Missing.Value;
- Word._Application oWord;
- Word._Document oDoc;
- oWord = new Word.Application();
- oWord.Visible = true;
- oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
- ref oMissing, ref oMissing);
- object start = 0;
- object end = 0;
- Word.Range tableLocation = oDoc.Range(ref start, ref end);
- oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);
- Word.Table newTable = oDoc.Tables[1];
- object beforeRow = newTable.Rows[1];
- newTable.Rows.Add(ref beforeRow);
- Word.Cell cell = newTable.Cell(1, 1);
- cell.Merge(newTable.Cell(1, 2));
单元格分离
- object oMissing = System.Reflection.Missing.Value;
- Word._Application oWord;
- Word._Document oDoc;
- oWord = new Word.Application();
- oWord.Visible = true;
- oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
- ref oMissing, ref oMissing);
- object start = 0;
- object end = 0;
- Word.Range tableLocation = oDoc.Range(ref start, ref end);
- oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);
- Word.Table newTable = oDoc.Tables[1];
- object beforeRow = newTable.Rows[1];
- newTable.Rows.Add(ref beforeRow);
- Word.Cell cell = newTable.Cell(1, 1);
- cell.Merge(newTable.Cell(1, 2));
- object Rownum = 2;
- object Columnnum = 2;
- cell.Split(ref Rownum, ref Columnnum);
通过段落控制插入
- object oMissing = System.Reflection.Missing.Value;
- object oEndOfDoc = "/endofdoc"; /**//* endofdoc is a predefined bookmark */
- //Start Word and create a new document.
- Word._Application oWord;
- Word._Document oDoc;
- oWord = new Word.Application();
- oWord.Visible = true;
- oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
- ref oMissing, ref oMissing);
- //Insert a paragraph at the beginning of the document.
- Word.Paragraph oPara1;
- oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
- oPara1.Range.Text = "Heading 1";
- oPara1.Range.Font.Bold = 1;
- oPara1.Format.SpaceAfter = 24; //24 pt spacing after paragraph.
- oPara1.Range.InsertParagraphAfter();
常见操作
- bool saveChange = false;
- object missing = System.Reflection.Missing.Value;
- object template = (object)templateFilePath;
- object filename = (object)saveFilePath;
- object isVisible = missing;
- object readOnly = missing;
- object breakType = Word.WdBreakType.wdSectionBreakNextPage;
- object isSaveChange = (object)saveChange;
- Word.Document doc = null;
- //定义一个Word.Application 对象
- Word.Application WordApp = new Word.ApplicationClass();
- //打开文档
- doc = WordApp.Documents.Open(
- ref template, ref missing,ref readOnly,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);
- //设置页眉文本
- WordApp.ActiveWindow.ActivePane.View.SeekView
- = Word.WdSeekView.wdSeekCurrentPageHeader;
- WordApp.Selection.WholeStory();
- WordApp.Selection.TypeText( this.m_titleText );
- WordApp.ActiveWindow.ActivePane.View.SeekView
- = Word.WdSeekView.wdSeekMainDocument;
- //页面设置,设置页面为纵向布局,设置纸张类型为A4纸
- doc.PageSetup.Orientation = Word.WdOrientation.wdOrientLandscape;
- doc.PageSetup.PageWidth = WordApp.CentimetersToPoints(29.7F);
- doc.PageSetup.PageHeight = WordApp.CentimetersToPoints(21F);
- //创建表格及设置表格和单元格属性
- object autoFitBehavior = Word.WdAutoFitBehavior.wdAutoFitWindow;
- doc.Content.Tables.Add(
- WordApp.Selection.Range,
- totalCount + 1,
- totalField - keyCount_1,
- ref missing,
- ref autoFitBehavior);
- //合并单元隔
- doc.Content.Tables[1].Cell(i+1,j).Select();
- object moveUnit = Word.WdUnits.wdLine;
- object moveCount = 1;
- object moveExtend = Word.WdMovementType.wdExtend;
- WordApp.Selection.MoveUp(ref moveUnit, ref moveCount, ref moveExtend);
- WordApp.Selection.Cells.Merge();
- WordApp.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
- doc.Content.Tables[1].Cell(i+1,1).Range.Text = “单元格内容填充”
- //添加表格行
- doc.Content.Tables[0].Rows.Add(ref beforeRow);
- //添加表格列
- doc.Content.Tables[0].Columns.Add(ref beforeColumn);
- //文本居中
- WordApp.Selection.ParagraphFormat.Alignment =
- Word.WdParagraphAlignment.wdAlignParagraphCenter;
- WordApp.Selection.Cells.VerticalAlignment =
- Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//选中单元格文字垂直居中