C# 在word文档中复制表格并粘帖到下一页中
C# 在word文档中复制表格并粘帖到下一页中
object oMissing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word._Application oWord;
Microsoft.Office.Interop.Word._Document oDoc;
oWord = new Microsoft.Office.Interop.Word.Application();
//显示word文档
oWord.Visible = true;
//取得word文件模板
object fileName = System.Windows.Forms.Application.StartupPath + "\word.doc";
//根据模板生成一个新文档,相当于另存为
oDoc = oWord.Documents.Add(ref fileName, ref oMissing,
ref oMissing, ref oMissing);
//复制第一个表格
oDoc.Tables[1].Select();
oWord.Selection.Copy();
//在这里操作表格中的文本
oDoc.Tables[1].Cell(1, 1).Range.Text = "这是第一个表格";
//下一页
object mymissing = System.Reflection.Missing.Value;
object myunit = Microsoft.Office.Interop.Word.WdUnits.wdStory;
oWord.Selection.EndKey(ref myunit, ref mymissing);
object pBreak = (int)Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak;
oWord.Selection.InsertBreak(ref pBreak);
//粘贴第一个表格
oWord.Selection.Paste();
oDoc.Tables[2].Cell(1, 1).Range.Text = "这是第二个表格";
bool saveChange = false;
//C#操作Word表格操作
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();
//C#操作Word表格操作之打开文档
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);
//C#操作Word表格操作之设置页眉文本
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);
//C#操作Word表格操作之创建表格及设置表格和单元格属性
object autoFitBehavior = Word.WdAutoFitBehavior.wdAutoFitWindow;
doc.Content.Tables.Add(
WordApp.Selection.Range, totalCount + 1,
totalField - keyCount_1, ref missing,
ref autoFitBehavior);
//C#操作Word表格操作之合并单元隔
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);
//C#操作Word表格操作之添加表格列
doc.Content.Tables[0].Columns.Add(ref beforeColumn);
//文本居中
WordApp.Selection.ParagraphFormat.Alignment =
Word.WdParagraphAlignment.wdAlignParagraphCenter;
WordApp.Selection.Cells.VerticalAlignment =
Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
//C#操作Word表格操作之选中单元格文字垂直居中
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));