C#操作Word的超详细总结本文中用C#来操作Word,包括:创建Word;插入文字,选择文字,编辑文字的字号、粗细、颜色、下划线等;设置段落的首行缩进、行距;设置页面页边距和纸张大小;设置页眉、页码;插入图片,设置图片宽高以及给图片添加标题;插入表格,格式化表格,往表格中插入数据;保存Word,打印Word;重新打开Word等。Visualstudio版本:VisualStudio2012(2010应该也可以)准备工作:/*1.添加引用COM里面的MicrosoftWord12.0Object.Library引用(12.0表示Word2007版本)2.导命名空间usingMSWord=Microsoft.Office.Interop.Word;usingSystem.IO;usingSystem.Reflection;3.把引用中的Microsoft.Office.Interop.Word的“属性”中的嵌入互操作设为False*/以下是全部代码:(代码有点长,但请不要有压力,直接复制进去就能直接成功运行)1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Linq;4usingSystem.Runtime.InteropServices;5usingSystem.Text;6usingMSWord=Microsoft.Office.Interop.Word;7usingSystem.IO;8usingSystem.Reflection;910namespaceConsole_WordSkill_All11{12classProgram13{14staticvoidMain(string[]args)15{16objectpath;//文件路径变量17stringstrContent;//文本内容变量18MSWord.ApplicationwordApp;//Word应用程序变量19MSWord.DocumentwordDoc;//Word文档变量2021path=Environment.CurrentDirectory+\\MyWord_Print.doc;22wordApp=newMSWord.ApplicationClass();//初始化2324wordApp.Visible=true;//使文档可见2526//如果已存在,则删除27if(File.Exists((string)path))28{29File.Delete((string)path);30}3132//由于使用的是COM库,因此有许多变量需要用Missing.Value代替33ObjectNothing=Missing.Value;34wordDoc=wordApp.Documents.Add(refNothing,refNothing,refNothing,refNothing);3536#region页面设置、页眉图片和文字设置,最后跳出页眉设置3738//页面设置39wordDoc.PageSetup.PaperSize=MSWord.WdPaperSize.wdPaperA4;//设置纸张样式为A4纸40wordDoc.PageSetup.Orientation=MSWord.WdOrientation.wdOrientPortrait;//排列方式为垂直方向41wordDoc.PageSetup.TopMargin=57.0f;42wordDoc.PageSetup.BottomMargin=57.0f;43wordDoc.PageSetup.LeftMargin=57.0f;44wordDoc.PageSetup.RightMargin=57.0f;45wordDoc.PageSetup.HeaderDistance=30.0f;//页眉位置4647//设置页眉48wordApp.ActiveWindow.View.Type=MSWord.WdViewType.wdNormalView;//普通视图(即页面视图)样式49wordApp.ActiveWindow.View.SeekView=MSWord.WdSeekView.wdSeekPrimaryHeader;//进入页眉设置,其中页眉边距在页面设置中已完成50wordApp.Selection.ParagraphFormat.Alignment=MSWord.WdParagraphAlignment.wdAlignParagraphRight;//页眉中的文字右对齐515253//插入页眉图片(测试结果图片未插入成功)54wordApp.Selection.ParagraphFormat.Alignment=MSWord.WdParagraphAlignment.wdAlignParagraphCenter;55stringheaderfile=@C:\Users\xiahui\Desktop\OficeProgram\3.jpg;56MSWord.InlineShapeshape1=wordApp.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(headerfile,refNothing,refNothing,refNothing);57shape1.Height=5;//强行设置貌似无效,图片没有按设置的缩放——图片的比例并没有改变。58shape1.Width=20;59wordApp.ActiveWindow.ActivePane.Selection.InsertAfter(文档页眉);//在页眉的图片后面追加几个字6061//去掉页眉的横线62wordApp.ActiveWindow.ActivePane.Selection.ParagraphFormat.Borders[MSWord.WdBorderType.wdBorderBottom].LineStyle=MSWord.WdLineStyle.wdLineStyleNone;63wordApp.ActiveWindow.ActivePane.Selection.Borders[MSWord.WdBorderType.wdBorderBottom].Visible=false;64wordApp.ActiveWindow.ActivePane.View.SeekView=MSWord.WdSeekView.wdSeekMainDocument;//退出页眉设置65#endregion6667#region页码设置并添加页码6869//为当前页添加页码70MSWord.PageNumberspns=wordApp.Selection.Sections[1].Headers[MSWord.WdHeaderFooterIndex.wdHeaderFooterEvenPages].PageNumbers;//获取当前页的号码71pns.NumberStyle=MSWord.WdPageNumberStyle.wdPageNumberStyleNumberInDash;//设置页码的风格,是Dash形还是圆形的72pns.HeadingLevelForChapter=0;73pns.IncludeChapterNumber=false;74pns.RestartNumberingAtSection=false;75pns.StartingNumber=0;//开始页页码?76objectpagenmbetal=MSWord.WdPageNumberAlignment.wdAlignPageNumberCenter;//将号码设置在中间77objectfirst=true;78wordApp.Selection.Sections[1].Footers[MSWord.WdHeaderFooterIndex.wdHeaderFooterEvenPages].PageNumbers.Add(refpagenmbetal,reffirst);7980#endregion8182#region行间距与缩进、文本字体、字号、加粗、斜体、颜色、下划线、下划线颜色设置8384wordApp.Selection.ParagraphFormat.LineSpacing=16f;//设置文档的行间距85wordApp.Selection.ParagraphFormat.FirstLineIndent=30;//首行缩进的长度86//写入普通文本87strContent=我是普通文本\n;88wordDoc.Paragraphs.Last.Range.Text=strContent;8990wordDoc.Paragraphs.Last.Range.Text=我再加一行试试,这里不加'\\n';91//直接添加段,不是覆盖(+=)92wordDoc.Paragraphs.Last.Range.Text+=不会覆盖的,;9394//添加在此段的文字后面,不是新段落95wordDoc.Paragraphs.Last.Range.InsertAfter(这是后面的内容\n);9697//将文档的前4个字替换成哥是替换文字,并将其颜色设为红色98objectstart=0;99objectend=4;100MSWord.Rangerang=wordDoc.Range(refstart,refend);101rang.Font.Color=MSWord.WdColor.wdColorRed;102rang.Text=哥是替换文字;103wordDoc.Range(refstart,refend);104105//写入黑体文本106objectunite=MSWord.WdUnits.wdStory;107wordApp.Selection.EndKey(refunite,refNothing);//将光标移到文本末尾108wordApp.Selection.ParagraphFormat.FirstLineIndent=0;//取消首行缩进的长度109strContent=这是黑体文本\n;110wordDoc.Paragraphs.Last.Range.Font.Name=黑体;111wordDoc.Paragraphs.Last.Range.Text=strContent;112113//写入加粗文本114strContent=这是粗体文本\n;//115wordApp.Selection.EndKey(refunite,refNothing);//这一句不加,有时候好像也不出问题,不过还是加了安全116wordDoc.Paragraphs.Last.Range.Font.Bold=1;117wordDoc.Paragraphs.Last.Range.Text=strContent;118119//写入15号字体文本120strContent=我这个文本的字号是15号,而且是宋体\n;121wordApp.Selection.EndKey(refunite,refNothing);122wordDoc.Paragraphs.Last.Range.Font.Size=15;123wordDoc.Paragraphs.Last.Range.Font.Name=宋体;124wordDoc.Paragraphs.Last.Range.Text=strContent;125126//写入斜体文本127strContent=我是斜体字文本\n;128wordApp.Selection.EndKey(refunite,refNothing);129wordDoc.Paragraphs.Last.Range.Font.Italic=1;130wordDoc.Paragraphs.Last.Range.Text=strConten