C#操作Word的超详细总结

本文中用C#来操作Word,包括:

 

创建Word;

插入文字,选择文字,编辑文字的字号、粗细、颜色、下划线等;

设置段落的首行缩进、行距;

设置页面页边距和纸张大小;

设置页眉、页码;

插入图片,设置图片宽高以及给图片添加标题;

插入表格,格式化表格,往表格中插入数据;

保存Word,打印Word;

重新打开Word等。

 

Visual studio版本:Visual Studio 2012(2010应该也可以)

 

准备工作:

/* 1. 添加引用COM里面的 Microsoft Word 12.0 Object. Library 引用(12.0表示Word 2007版本)

2. 导命名空间

using MSWord =Microsoft.Office.Interop.Word;             using System.IO;             using System.Reflection;

3. 把引用中的Microsoft.Office.Interop.Word的“属性”中的嵌入互操作设为False */

 

以下是全部代码:(代码有点长,但请不要有压力,直接复制进去就能直接成功运行)

复制代码
  1 using System;
  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Runtime.InteropServices;  5 using System.Text;  6 using MSWord = Microsoft.Office.Interop.Word;  7 using System.IO;  8 using System.Reflection;  9  10 namespace Console_WordSkill_All  11 {  12 class Program  13  {  14 static void Main(string[] args)  15  {  16 object path; //文件路径变量  17 string strContent; //文本内容变量  18 MSWord.Application wordApp; //Word应用程序变量  19 MSWord.Document wordDoc; //Word文档变量  20  21 path = Environment.CurrentDirectory + "\\MyWord_Print.doc";  22 wordApp = new MSWord.ApplicationClass(); //初始化  23  24 wordApp.Visible = true;//使文档可见  25  26 //如果已存在,则删除  27 if (File.Exists((string)path))  28  {  29 File.Delete((string)path);  30  }  31  32 //由于使用的是COM库,因此有许多变量需要用Missing.Value代替  33 Object Nothing = Missing.Value;  34 wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);  35  36 #region 页面设置、页眉图片和文字设置,最后跳出页眉设置  37  38 //页面设置  39 wordDoc.PageSetup.PaperSize = MSWord.WdPaperSize.wdPaperA4;//设置纸张样式为A4纸  40 wordDoc.PageSetup.Orientation = MSWord.WdOrientation.wdOrientPortrait;//排列方式为垂直方向  41 wordDoc.PageSetup.TopMargin = 57.0f;  42 wordDoc.PageSetup.BottomMargin = 57.0f;  43 wordDoc.PageSetup.LeftMargin = 57.0f;  44 wordDoc.PageSetup.RightMargin = 57.0f;  45 wordDoc.PageSetup.HeaderDistance = 30.0f;//页眉位置  46  47 //设置页眉  48 wordApp.ActiveWindow.View.Type = MSWord.WdViewType.wdNormalView;//普通视图(即页面视图)样式  49 wordApp.ActiveWindow.View.SeekView = MSWord.WdSeekView.wdSeekPrimaryHeader;//进入页眉设置,其中页眉边距在页面设置中已完成  50 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphRight;//页眉中的文字右对齐  51  52  53 //插入页眉图片(测试结果图片未插入成功)  54 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter;  55 string headerfile = @"C:\Users\xiahui\Desktop\OficeProgram\3.jpg";  56 MSWord.InlineShape shape1 = wordApp.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(headerfile, ref Nothing, ref Nothing, ref Nothing);  57 shape1.Height = 5;//强行设置貌似无效,图片没有按设置的缩放——图片的比例并没有改变。  58 shape1.Width = 20;  59 wordApp.ActiveWindow.ActivePane.Selection.InsertAfter(" 文档页眉");//在页眉的图片后面追加几个字  60  61 //去掉页眉的横线  62 wordApp.ActiveWindow.ActivePane.Selection.ParagraphFormat.Borders[MSWord.WdBorderType.wdBorderBottom].LineStyle = MSWord.WdLineStyle.wdLineStyleNone;  63 wordApp.ActiveWindow.ActivePane.Selection.Borders[MSWord.WdBorderType.wdBorderBottom].Visible = false;  64 wordApp.ActiveWindow.ActivePane.View.SeekView = MSWord.WdSeekView.wdSeekMainDocument;//退出页眉设置  65 #endregion  66  67 #region 页码设置并添加页码  68  69 //为当前页添加页码  70 MSWord.PageNumbers pns = wordApp.Selection.Sections[1].Headers[MSWord.WdHeaderFooterIndex.wdHeaderFooterEvenPages].PageNumbers;//获取当前页的号码  71 pns.NumberStyle = MSWord.WdPageNumberStyle.wdPageNumberStyleNumberInDash;//设置页码的风格,是Dash形还是圆形的  72 pns.HeadingLevelForChapter = 0;  73 pns.IncludeChapterNumber = false;  74 pns.RestartNumberingAtSection = false;  75 pns.StartingNumber = 0; //开始页页码?  76 object pagenmbetal = MSWord.WdPageNumberAlignment.wdAlignPageNumberCenter;//将号码设置在中间  77 object first = true;  78 wordApp.Selection.Sections[1].Footers[MSWord.WdHeaderFooterIndex.wdHeaderFooterEvenPages].PageNumbers.Add(ref pagenmbetal, ref first);  79  80 #endregion  81  82 #region 行间距与缩进、文本字体、字号、加粗、斜体、颜色、下划线、下划线颜色设置  83  84 wordApp.Selection.ParagraphFormat.LineSpacing = 16f;//设置文档的行间距  85 wordApp.Selection.ParagraphFormat.FirstLineIndent = 30;//首行缩进的长度  86 //写入普通文本  87 strContent = "我是普通文本\n

转载于:https://www.cnblogs.com/mol1995/p/10932842.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值