C# 在word文档中复制表格并粘帖到下一页中

时间:2022-01-05 03:45:25

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));