1. 首先,该问题涉及到Office开发。
2. 引用Office组件,添加References,在弹出的窗口中,选择Com选项卡,然后找到Micorsoft Word 11.0 Object Library组件,点击确定,可以看到References目录下增加了Word、Microsoft.Office.Core和VBIDE三个Assembly。
注:我引用时Word Assembly一直无法正常引用,因为之前用的是中文系统没发现这个问题,现在用的操作系统、Visual studio 2005是英文的,而Office是中文的,可能是这个原因导致的吧。
3. 添加引用using Microsoft.Office.Core
4. 几种常见的Word以及表格操作
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;//选中单元格文字垂直居中
|