久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

[轉(zhuǎn)]C#操作Word的超詳細(xì)總結(jié)

 sdyxlyua 2020-09-06
復(fù)制代碼
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; //文本內(nèi)容變量 18 MSWord.Application wordApp; //Word應(yīng)用程序變量 19 MSWord.Document wordDoc; //Word文檔變量 20 21 path = Environment.CurrentDirectory + '\\MyWord_Print.doc'; 22 wordApp = new MSWord.ApplicationClass(); //初始化 23 24 wordApp.Visible = true;//使文檔可見(jiàn) 25 26 //如果已存在,,則刪除 27 if (File.Exists((string)path)) 28 { 29 File.Delete((string)path); 30 } 31 32 //由于使用的是COM庫(kù),,因此有許多變量需要用Missing.Value代替 33 Object Nothing = Missing.Value; 34 wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing); 35 36 #region 頁(yè)面設(shè)置,、頁(yè)眉圖片和文字設(shè)置,最后跳出頁(yè)眉設(shè)置 37 38 //頁(yè)面設(shè)置 39 wordDoc.PageSetup.PaperSize = MSWord.WdPaperSize.wdPaperA4;//設(shè)置紙張樣式為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;//頁(yè)眉位置 46 47 //設(shè)置頁(yè)眉 48 wordApp.ActiveWindow.View.Type = MSWord.WdViewType.wdNormalView;//普通視圖(即頁(yè)面視圖)樣式 49 wordApp.ActiveWindow.View.SeekView = MSWord.WdSeekView.wdSeekPrimaryHeader;//進(jìn)入頁(yè)眉設(shè)置,,其中頁(yè)眉邊距在頁(yè)面設(shè)置中已完成 50 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphRight;//頁(yè)眉中的文字右對(duì)齊 51 52 53 //插入頁(yè)眉圖片(測(cè)試結(jié)果圖片未插入成功) 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;//強(qiáng)行設(shè)置貌似無(wú)效,,圖片沒(méi)有按設(shè)置的縮放——圖片的比例并沒(méi)有改變。 58 shape1.Width = 20; 59 wordApp.ActiveWindow.ActivePane.Selection.InsertAfter(' 文檔頁(yè)眉');//在頁(yè)眉的圖片后面追加幾個(gè)字 60 61 //去掉頁(yè)眉的橫線 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;//退出頁(yè)眉設(shè)置 65 #endregion 66 67 #region 頁(yè)碼設(shè)置并添加頁(yè)碼 68 69 //為當(dāng)前頁(yè)添加頁(yè)碼 70 MSWord.PageNumbers pns = wordApp.Selection.Sections[1].Headers[MSWord.WdHeaderFooterIndex.wdHeaderFooterEvenPages].PageNumbers;//獲取當(dāng)前頁(yè)的號(hào)碼 71 pns.NumberStyle = MSWord.WdPageNumberStyle.wdPageNumberStyleNumberInDash;//設(shè)置頁(yè)碼的風(fēng)格,,是Dash形還是圓形的 72 pns.HeadingLevelForChapter = 0; 73 pns.IncludeChapterNumber = false; 74 pns.RestartNumberingAtSection = false; 75 pns.StartingNumber = 0; //開(kāi)始頁(yè)頁(yè)碼,? 76 object pagenmbetal = MSWord.WdPageNumberAlignment.wdAlignPageNumberCenter;//將號(hào)碼設(shè)置在中間 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 行間距與縮進(jìn)、文本字體,、字號(hào),、加粗、斜體,、顏色,、下劃線、下劃線顏色設(shè)置 83 84 wordApp.Selection.ParagraphFormat.LineSpacing = 16f;//設(shè)置文檔的行間距 85 wordApp.Selection.ParagraphFormat.FirstLineIndent = 30;//首行縮進(jìn)的長(zhǎng)度 86 //寫(xiě)入普通文本 87 strContent = '我是普通文本\n'; 88 wordDoc.Paragraphs.Last.Range.Text = strContent; 89 90 wordDoc.Paragraphs.Last.Range.Text = '我再加一行試試,,這里不加'\\n''; 91 //直接添加段,,不是覆蓋( += ) 92 wordDoc.Paragraphs.Last.Range.Text += '不會(huì)覆蓋的,'; 93 94 //添加在此段的文字后面,不是新段落 95 wordDoc.Paragraphs.Last.Range.InsertAfter('這是后面的內(nèi)容\n'); 96 97 //將文檔的前4個(gè)字替換成'哥是替換文字',,并將其顏色設(shè)為紅色 98 object start = 0; 99 object end = 4;100 MSWord.Range rang = wordDoc.Range(ref start, ref end);101 rang.Font.Color = MSWord.WdColor.wdColorRed;102 rang.Text = '哥是替換文字';103 wordDoc.Range(ref start, ref end);104 105 //寫(xiě)入黑體文本106 object unite = MSWord.WdUnits.wdStory;107 wordApp.Selection.EndKey(ref unite, ref Nothing);//將光標(biāo)移到文本末尾108 wordApp.Selection.ParagraphFormat.FirstLineIndent = 0;//取消首行縮進(jìn)的長(zhǎng)度109 strContent = '這是黑體文本\n';110 wordDoc.Paragraphs.Last.Range.Font.Name = '黑體';111 wordDoc.Paragraphs.Last.Range.Text = strContent;112 113 //寫(xiě)入加粗文本114 strContent = '這是粗體文本\n'; //115 wordApp.Selection.EndKey(ref unite, ref Nothing);//這一句不加,,有時(shí)候好像也不出問(wèn)題,不過(guò)還是加了安全116 wordDoc.Paragraphs.Last.Range.Font.Bold = 1;117 wordDoc.Paragraphs.Last.Range.Text = strContent;118 119 //寫(xiě)入15號(hào)字體文本120 strContent = '我這個(gè)文本的字號(hào)是15號(hào),,而且是宋體\n';121 wordApp.Selection.EndKey(ref unite, ref Nothing);122 wordDoc.Paragraphs.Last.Range.Font.Size = 15;123 wordDoc.Paragraphs.Last.Range.Font.Name = '宋體';124 wordDoc.Paragraphs.Last.Range.Text = strContent;125 126 //寫(xiě)入斜體文本127 strContent = '我是斜體字文本\n';128 wordApp.Selection.EndKey(ref unite, ref Nothing);129 wordDoc.Paragraphs.Last.Range.Font.Italic = 1;130 wordDoc.Paragraphs.Last.Range.Text = strContent;131 132 //寫(xiě)入藍(lán)色文本133 strContent = '我是藍(lán)色的文本\n';134 wordApp.Selection.EndKey(ref unite, ref Nothing);135 wordDoc.Paragraphs.Last.Range.Font.Color = MSWord.WdColor.wdColorBlue;136 wordDoc.Paragraphs.Last.Range.Text = strContent;137 138 //寫(xiě)入下劃線文本139 strContent = '我是下劃線文本\n';140 wordApp.Selection.EndKey(ref unite, ref Nothing);141 wordDoc.Paragraphs.Last.Range.Font.Underline = MSWord.WdUnderline.wdUnderlineThick;142 wordDoc.Paragraphs.Last.Range.Text = strContent;143 144 //寫(xiě)入紅色下畫(huà)線文本145 strContent = '我是點(diǎn)線下劃線,,并且下劃線是紅色的\n';146 wordApp.Selection.EndKey(ref unite, ref Nothing);147 wordDoc.Paragraphs.Last.Range.Font.Underline = MSWord.WdUnderline.wdUnderlineDottedHeavy;148 wordDoc.Paragraphs.Last.Range.Font.UnderlineColor = MSWord.WdColor.wdColorRed;149 wordDoc.Paragraphs.Last.Range.Text = strContent;150 151 //取消下劃線,并且將字號(hào)調(diào)整為12號(hào)152 strContent = '我他媽不要下劃線了,,并且設(shè)置字號(hào)為12號(hào),,黑色不要斜體\n';153 wordApp.Selection.EndKey(ref unite, ref Nothing);154 wordDoc.Paragraphs.Last.Range.Font.Size = 12;155 wordDoc.Paragraphs.Last.Range.Font.Underline = MSWord.WdUnderline.wdUnderlineNone;156 wordDoc.Paragraphs.Last.Range.Font.Color = MSWord.WdColor.wdColorBlack;157 wordDoc.Paragraphs.Last.Range.Font.Italic = 0;158 wordDoc.Paragraphs.Last.Range.Text = strContent;159 160 161 #endregion162 163 164 #region 插入圖片、居中顯示,,設(shè)置圖片的絕對(duì)尺寸和縮放尺寸,,并給圖片添加標(biāo)題165 166 wordApp.Selection.EndKey(ref unite, ref Nothing); //將光標(biāo)移動(dòng)到文檔末尾167 //圖片文件的路徑168 string filename = Environment.CurrentDirectory + '\\6.jpg';169 //要向Word文檔中插入圖片的位置170 Object range = wordDoc.Paragraphs.Last.Range;171 //定義該插入的圖片是否為外部鏈接172 Object linkToFile = false; //默認(rèn),這里貌似設(shè)置為bool類(lèi)型更清晰一些173 //定義要插入的圖片是否隨Word文檔一起保存174 Object saveWithDocument = true; //默認(rèn)175 //使用InlineShapes.AddPicture方法(【即“嵌入型”】)插入圖片176 wordDoc.InlineShapes.AddPicture(filename, ref linkToFile, ref saveWithDocument, ref range);177 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter;//居中顯示圖片178 179 //設(shè)置圖片寬高的絕對(duì)大小180 181 //wordDoc.InlineShapes[1].Width = 200;182 //wordDoc.InlineShapes[1].Height = 150;183 //按比例縮放大小184 185 wordDoc.InlineShapes[1].ScaleWidth = 20;//縮小到20% ?186 wordDoc.InlineShapes[1].ScaleHeight = 20;187 188 //在圖下方居中添加圖片標(biāo)題189 190 wordDoc.Content.InsertAfter('\n');//這一句與下一句的順序不能顛倒,,原因還沒(méi)搞透191 wordApp.Selection.EndKey(ref unite, ref Nothing); 192 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter;193 wordApp.Selection.Font.Size = 10;//字體大小194 wordApp.Selection.TypeText('圖1 測(cè)試圖片\n');195 196 #endregion197 198 #region 添加表格,、填充數(shù)據(jù)、設(shè)置表格行列寬高,、合并單元格、添加表頭斜線,、給單元格添加圖片199 wordDoc.Content.InsertAfter('\n');//這一句與下一句的順序不能顛倒,,原因還沒(méi)搞透200 wordApp.Selection.EndKey(ref unite, ref Nothing); //將光標(biāo)移動(dòng)到文檔末尾201 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphLeft;202 //object WdLine2 = MSWord.WdUnits.wdLine;//換一行; 203 //wordApp.Selection.MoveDown(ref WdLine2, 6, ref Nothing);//向下跨15行輸入表格,這樣表格就在文字下方了,,不過(guò)這是非主流的方法204 205 //設(shè)置表格的行數(shù)和列數(shù)206 int tableRow = 6;207 int tableColumn = 6;208 209 //定義一個(gè)Word中的表格對(duì)象210 MSWord.Table table = wordDoc.Tables.Add(wordApp.Selection.Range,211 tableRow, tableColumn, ref Nothing, ref Nothing);212 213 //默認(rèn)創(chuàng)建的表格沒(méi)有邊框,,這里修改其屬性,,使得創(chuàng)建的表格帶有邊框 214 table.Borders.Enable = 1;//這個(gè)值可以設(shè)置得很大,例如5,、13等等215 216 //表格的索引是從1開(kāi)始的,。217 wordDoc.Tables[1].Cell(1, 1).Range.Text = '列\(zhòng)n行';218 for (int i = 1; i < tableRow; i++)219 {220 for (int j = 1; j < tableColumn; j++)221 {222 if (i == 1)223 {224 table.Cell(i, j + 1).Range.Text = 'Column ' + j;//填充每列的標(biāo)題225 }226 if (j == 1)227 {228 table.Cell(i + 1, j).Range.Text = 'Row ' + i; //填充每行的標(biāo)題229 }230 table.Cell(i + 1, j + 1).Range.Text = i + '' + j + ''; //填充表格的各個(gè)小格子231 }232 }233 234 235 //添加行236 table.Rows.Add(ref Nothing);237 table.Rows[tableRow + 1].Height = 35;//設(shè)置新增加的這行表格的高度238 //向新添加的行的單元格中添加圖片239 string FileName = Environment.CurrentDirectory + '\\6.jpg';//圖片所在路徑240 object LinkToFile = false;241 object SaveWithDocument = true;242 object Anchor = table.Cell(tableRow + 1, tableColumn).Range;//選中要添加圖片的單元格243 wordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);244 245 //由于是本文檔的第2張圖,所以這里是InlineShapes[2]246 wordDoc.Application.ActiveDocument.InlineShapes[2].Width = 50;//圖片寬度247 wordDoc.Application.ActiveDocument.InlineShapes[2].Height = 35;//圖片高度248 249 // 將圖片設(shè)置為四周環(huán)繞型250 MSWord.Shape s = wordDoc.Application.ActiveDocument.InlineShapes[2].ConvertToShape();251 s.WrapFormat.Type = MSWord.WdWrapType.wdWrapSquare;252 253 254 //設(shè)置table樣式255 table.Rows.HeightRule = MSWord.WdRowHeightRule.wdRowHeightAtLeast;//高度規(guī)則是:行高有最低值下限,?256 table.Rows.Height = wordApp.CentimetersToPoints(float.Parse('0.8'));// 257 258 table.Range.Font.Size = 10.5F;259 table.Range.Font.Bold = 0;260 261 table.Range.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter;//表格文本居中262 table.Range.Cells.VerticalAlignment = MSWord.WdCellVerticalAlignment.wdCellAlignVerticalBottom;//文本垂直貼到底部263 //設(shè)置table邊框樣式264 table.Borders.OutsideLineStyle = MSWord.WdLineStyle.wdLineStyleDouble;//表格外框是雙線265 table.Borders.InsideLineStyle = MSWord.WdLineStyle.wdLineStyleSingle;//表格內(nèi)框是單線266 267 table.Rows[1].Range.Font.Bold = 1;//加粗268 table.Rows[1].Range.Font.Size = 12F;269 table.Cell(1, 1).Range.Font.Size = 10.5F;270 wordApp.Selection.Cells.Height = 30;//所有單元格的高度271 272 //除第一行外,,其他行的行高都設(shè)置為20273 for (int i = 2; i <= tableRow; i++)274 {275 table.Rows[i].Height = 20;276 }277 278 //將表格左上角的單元格里的文字(“行” 和 “列”)居右279 table.Cell(1, 1).Range.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphRight;280 //將表格左上角的單元格里面下面的“列”字移到左邊,相比上一行就是將ParagraphFormat改成了Paragraphs[2].Format281 table.Cell(1, 1).Range.Paragraphs[2].Format.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphLeft;282 283 table.Columns[1].Width = 50;//將第 1列寬度設(shè)置為50284 285 //將其他列的寬度都設(shè)置為75286 for (int i = 2; i <= tableColumn; i++)287 {288 table.Columns[i].Width = 75;289 }290 291 292 //添加表頭斜線,并設(shè)置表頭的樣式293 table.Cell(1, 1).Borders[MSWord.WdBorderType.wdBorderDiagonalDown].Visible = true;294 table.Cell(1, 1).Borders[MSWord.WdBorderType.wdBorderDiagonalDown].Color = MSWord.WdColor.wdColorRed;295 table.Cell(1, 1).Borders[MSWord.WdBorderType.wdBorderDiagonalDown].LineWidth = MSWord.WdLineWidth.wdLineWidth150pt;296 297 //合并單元格298 table.Cell(4, 4).Merge(table.Cell(4, 5));//橫向合并299 300 table.Cell(2, 3).Merge(table.Cell(4, 3));//縱向合并,,合并(2,3),(3,3),(4,3)301 302 #endregion303 304 wordApp.Selection.EndKey(ref unite, ref Nothing); //將光標(biāo)移動(dòng)到文檔末尾305 306 wordDoc.Content.InsertAfter('\n');307 wordDoc.Content.InsertAfter('就寫(xiě)這么多,,算了吧!2016.09.27');308 309 310 311 //WdSaveFormat為Word 2003文檔的保存格式312 object format = MSWord.WdSaveFormat.wdFormatDocument;// office 2007就是wdFormatDocumentDefault313 //將wordDoc文檔對(duì)象的內(nèi)容保存為DOCX文檔314 wordDoc.SaveAs(ref path, ref format, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);315 //關(guān)閉wordDoc文檔對(duì)象316 317 //看是不是要打印318 //wordDoc.PrintOut();319 320 321 322 wordDoc.Close(ref Nothing, ref Nothing, ref Nothing);323 //關(guān)閉wordApp組件對(duì)象324 wordApp.Quit(ref Nothing, ref Nothing, ref Nothing);325 Console.WriteLine(path + ' 創(chuàng)建完畢,!');326 Console.ReadKey();327 328 329 //我還要打開(kāi)這個(gè)文檔玩玩330 MSWord.Application app = new MSWord.Application();331 MSWord.Document doc = null;332 try333 {334 335 object unknow = Type.Missing;336 app.Visible = true;337 string str = Environment.CurrentDirectory + '\\MyWord_Print.doc';338 object file = str;339 doc = app.Documents.Open(ref file,340 ref unknow, ref unknow, ref unknow, ref unknow,341 ref unknow, ref unknow, ref unknow, ref unknow,342 ref unknow, ref unknow, ref unknow, ref unknow,343 ref unknow, ref unknow, ref unknow);344 string temp = doc.Paragraphs[1].Range.Text.Trim();345 Console.WriteLine('你他媽輸出temp干嘛,?');346 }347 catch (Exception ex)348 {349 Console.WriteLine(ex.Message);350 }351 wordDoc = doc;352 wordDoc.Paragraphs.Last.Range.Text += '我真的不打算再寫(xiě)了,就寫(xiě)這么多吧';353 354 Console.ReadKey();355 }356 357 }358 }

生成編輯的Word內(nèi)容如下圖所示:

復(fù)制代碼
word文檔工程變量的屬性//合并單元格   table.Cell(2, 2).Merge(table.Cell(2, 3));//單元格分離    object Rownum = 2;    object Columnnum = 2;    table.Cell(2, 2).Split(ref Rownum, ref Columnnum);//單元格對(duì)齊方式     WApp.Selection.Cells.VerticalAlignment =Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//插入表行     table.Rows.Add(ref missing);//分頁(yè) object ib = Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak;    WApp.Selection.InsertBreak(ref ib);//換行     WApp.Selection.TypeParagraph(); 二、word文檔設(shè)置WApp.ActiveDocument.PageSetup.LineNumbering.Active =0;//行編號(hào)            WApp.ActiveDocument.PageSetup.Orientation =Microsoft.Office.Interop.Word.WdOrientation.wdOrientPortrait;//頁(yè)面方向            WApp.ActiveDocument.PageSetup.TopMargin =WApp.CentimetersToPoints(float.Parse('2.54'));//上頁(yè)邊距            WApp.ActiveDocument.PageSetup.BottomMargin = WApp.CentimetersToPoints(float.Parse('2.54'));//下頁(yè)邊距            WApp.ActiveDocument.PageSetup.LeftMargin = WApp.CentimetersToPoints(float.Parse('3.17'));//左頁(yè)邊距            WApp.ActiveDocument.PageSetup.RightMargin = WApp.CentimetersToPoints(float.Parse('3.17'));//右頁(yè)邊距            WApp.ActiveDocument.PageSetup.Gutter = WApp.CentimetersToPoints(float.Parse('0'));//裝訂線位置            WApp.ActiveDocument.PageSetup.HeaderDistance = WApp.CentimetersToPoints(float.Parse('1.5'));//頁(yè)眉            WApp.ActiveDocument.PageSetup.FooterDistance = WApp.CentimetersToPoints(float.Parse('1.75'));//頁(yè)腳            WApp.ActiveDocument.PageSetup.PageWidth = WApp.CentimetersToPoints(float.Parse('21'));//紙張寬度            WApp.ActiveDocument.PageSetup.PageHeight = WApp.CentimetersToPoints(float.Parse('29.7'));//紙張高度            WApp.ActiveDocument.PageSetup.FirstPageTray = Microsoft.Office.Interop.Word.WdPaperTray.wdPrinterDefaultBin;//紙張來(lái)源            WApp.ActiveDocument.PageSetup.OtherPagesTray = Microsoft.Office.Interop.Word.WdPaperTray.wdPrinterDefaultBin;//紙張來(lái)源            WApp.ActiveDocument.PageSetup.SectionStart = Microsoft.Office.Interop.Word.WdSectionStart.wdSectionNewPage;//節(jié)的起始位置:新建頁(yè)            WApp.ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter = 0;//頁(yè)眉頁(yè)腳-奇偶頁(yè)不同            WApp.ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = 0;//頁(yè)眉頁(yè)腳-首頁(yè)不同            WApp.ActiveDocument.PageSetup.VerticalAlignment = Microsoft.Office.Interop.Word.WdVerticalAlignment.wdAlignVerticalTop;//頁(yè)面垂直對(duì)齊方式            WApp.ActiveDocument.PageSetup.SuppressEndnotes =0;//不隱藏尾注            WApp.ActiveDocument.PageSetup.MirrorMargins = 0;//不設(shè)置首頁(yè)的內(nèi)外邊距            WApp.ActiveDocument.PageSetup.TwoPagesOnOne = false;//不雙面打印            WApp.ActiveDocument.PageSetup.BookFoldPrinting =false;//不設(shè)置手動(dòng)雙面正面打印            WApp.ActiveDocument.PageSetup.BookFoldRevPrinting =false;//不設(shè)置手動(dòng)雙面背面打印            WApp.ActiveDocument.PageSetup.BookFoldPrintingSheets = 1;//打印默認(rèn)份數(shù)            WApp.ActiveDocument.PageSetup.GutterPos = Microsoft.Office.Interop.Word.WdGutterStyle.wdGutterPosLeft;//裝訂線位于左側(cè)            WApp.ActiveDocument.PageSetup.LinesPage = 40;//默認(rèn)頁(yè)行數(shù)量            WApp.ActiveDocument.PageSetup.LayoutMode = Microsoft.Office.Interop.Word.WdLayoutMode.wdLayoutModeLineGrid;//版式模式為“只指定行網(wǎng)格”   三,、光標(biāo)移動(dòng)//移動(dòng)光標(biāo)//光標(biāo)下移3行 上移3行            object unit = Microsoft.Office.Interop.Word.WdUnits.wdLine;            object count = 3;            WApp.Selection.MoveEnd(ref unit,ref count);            WApp.Selection.MoveUp(ref unit, ref count, ref missing);            //Microsoft.Office.Interop.Word.WdUnits說(shuō)明            //wdCell                  A cell.             //wdCharacter             A character.             //wdCharacterFormatting   Character formatting.             //wdColumn                A column.             //wdItem                  The selected item.             //wdLine                  A line. ////wdParagraph             A paragraph.             //wdParagraphFormatting   Paragraph formatting.             //wdRow                   A row.             //wdScreen                The screen dimensions.             //wdSection               A section.             //wdSentence              A sentence.             //wdStory                 A story.             //wdTable                 A table.             //wdWindow                A window.             //wdWord                  A word.//錄制的vb宏            //     ,移動(dòng)光標(biāo)至當(dāng)前行首            //    Selection.HomeKey unit:=wdLine            //    '移動(dòng)光標(biāo)至當(dāng)前行尾            //    Selection.EndKey unit:=wdLine            //    '選擇從光標(biāo)至當(dāng)前行首的內(nèi)容            //    Selection.HomeKey unit:=wdLine, Extend:=wdExtend            //    '選擇從光標(biāo)至當(dāng)前行尾的內(nèi)容            //    Selection.EndKey unit:=wdLine, Extend:=wdExtend            //    '選擇當(dāng)前行            //    Selection.HomeKey unit:=wdLine            //    Selection.EndKey unit:=wdLine, Extend:=wdExtend            //    '移動(dòng)光標(biāo)至文檔開(kāi)始            //    Selection.HomeKey unit:=wdStory            //    '移動(dòng)光標(biāo)至文檔結(jié)尾            //    Selection.EndKey unit:=wdStory            //    '選擇從光標(biāo)至文檔開(kāi)始的內(nèi)容            //    Selection.HomeKey unit:=wdStory, Extend:=wdExtend            //    '選擇從光標(biāo)至文檔結(jié)尾的內(nèi)容            //    Selection.EndKey unit:=wdStory, Extend:=wdExtend            //    '選擇文檔全部?jī)?nèi)容(從WholeStory可猜出Story應(yīng)是當(dāng)前文檔的意思)            //    Selection.WholeStory            //    '移動(dòng)光標(biāo)至當(dāng)前段落的開(kāi)始            //    Selection.MoveUp unit:=wdParagraph            //    '移動(dòng)光標(biāo)至當(dāng)前段落的結(jié)尾            //    Selection.MoveDown unit:=wdParagraph            //    '選擇從光標(biāo)至當(dāng)前段落開(kāi)始的內(nèi)容            //    Selection.MoveUp unit:=wdParagraph, Extend:=wdExtend            //    '選擇從光標(biāo)至當(dāng)前段落結(jié)尾的內(nèi)容            //    Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend            //    '選擇光標(biāo)所在段落的內(nèi)容            //    Selection.MoveUp unit:=wdParagraph            //    Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend            //    '顯示選擇區(qū)的開(kāi)始與結(jié)束的位置,,注意:文檔第1個(gè)字符的位置是0            //    MsgBox ('第' & Selection.Start & '個(gè)字符至第' & Selection.End & '個(gè)字符')            //    '刪除當(dāng)前行            //    Selection.HomeKey unit:=wdLine            //    Selection.EndKey unit:=wdLine, Extend:=wdExtend            //    Selection.Delete            //    '刪除當(dāng)前段落            //    Selection.MoveUp unit:=wdParagraph            //    Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend            //    Selection.Delete//表格的光標(biāo)移動(dòng)//光標(biāo)到當(dāng)前光標(biāo)所在表格的地單元格WApp.Selection.Tables[1].Cell(1, 1).Select();//unit對(duì)象定義object unith = Microsoft.Office.Interop.Word.WdUnits.wdRow;//表格行方式            object extend = Microsoft.Office.Interop.Word.WdMovementType.wdExtend;/**////extend對(duì)光標(biāo)移動(dòng)區(qū)域進(jìn)行擴(kuò)展選擇            object unitu = Microsoft.Office.Interop.Word.WdUnits.wdLine;//文檔行方式,可以看成表格一行.不過(guò)和wdRow有區(qū)別            object unitp = Microsoft.Office.Interop.Word.WdUnits.wdParagraph;//段落方式,對(duì)于表格可以選擇到表格行后的換車(chē)符,對(duì)于跨行合并的行選擇,我能找到的最簡(jiǎn)單方式            object count=1;//光標(biāo)移動(dòng)量下面代碼演示對(duì)于存在合并單元格的選擇操作.合并單元格的選擇問(wèn)題一直是word的bug.部分object對(duì)象參照上面代碼 上面這個(gè)是表格合并樣式.要如何才能選擇2行標(biāo)題欄尼.看下面代碼//定位到表格第1單元格WApp.Selection.Tables[1].Cell(1, 1).Select();//定位到第1個(gè)單元格第1個(gè)字符前          WApp.Selection.HomeKey(ref unith, ref missing);//擴(kuò)展到行尾,選擇表第1行            WApp.Selection.EndKey(ref unith, ref extend);//定義表格標(biāo)題的行數(shù)量,titlerow為參數(shù)            object strtitlerow=titlerow-1;//移動(dòng)光標(biāo)選擇第1行的末尾段落標(biāo)記            WApp.Selection.MoveDown(ref unitp, ref count, ref extend);//選擇下一行,因?yàn)楹喜⒌脑?如表格標(biāo)題最后列是合并,只選擇了2行的部分            WApp.Selection.MoveDown(ref unitu, ref strtitlerow, ref extend);//擴(kuò)展到該行的末端,保證合并行能全部選擇到            WApp.Selection.EndKey(ref unith, ref extend);//復(fù)制選擇內(nèi)容到剪貼板            WApp.Selection.Copy();//下面是移動(dòng)光標(biāo)到任何位置并粘貼內(nèi)容.我程序中目的是到表格換頁(yè)的時(shí)候自動(dòng)插入下一頁(yè)的表頭.            WApp.Selection.Tables[1].Cell(System.Convert.ToInt32(strRownum), 1).Select();            WApp.Selection.HomeKey(ref unith, ref missing);            WApp.Selection.Paste();四、段落格式設(shè)定//段落格式設(shè)定            WApp.Selection.ParagraphFormat.LeftIndent = WApp.CentimetersToPoints(float.Parse('0'));//左縮進(jìn)            WApp.Selection.ParagraphFormat.RightIndent = WApp.CentimetersToPoints(float.Parse('0'));//右縮進(jìn)            WApp.Selection.ParagraphFormat.SpaceBefore =float.Parse('0');//段前間距            WApp.Selection.ParagraphFormat.SpaceBeforeAuto =0;//            WApp.Selection.ParagraphFormat.SpaceAfter = float.Parse('0');//段后間距            WApp.Selection.ParagraphFormat.SpaceAfterAuto = 0;//            WApp.Selection.ParagraphFormat.LineSpacingRule = Microsoft.Office.Interop.Word.WdLineSpacing.wdLineSpaceSingle;//單倍行距            WApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;//段落2端對(duì)齊            WApp.Selection.ParagraphFormat.WidowControl = 0;//孤行控制            WApp.Selection.ParagraphFormat.KeepWithNext = 0;//與下段同頁(yè)            WApp.Selection.ParagraphFormat.KeepTogether = 0;//段中不分頁(yè)            WApp.Selection.ParagraphFormat.PageBreakBefore = 0;//段前分頁(yè)            WApp.Selection.ParagraphFormat.NoLineNumber = 0;//取消行號(hào)            WApp.Selection.ParagraphFormat.Hyphenation = 1;//取消段字            WApp.Selection.ParagraphFormat.FirstLineIndent = WApp.CentimetersToPoints(float.Parse('0'));//首行縮進(jìn)            WApp.Selection.ParagraphFormat.OutlineLevel = Microsoft.Office.Interop.Word.WdOutlineLevel.wdOutlineLevelBodyText;            WApp.Selection.ParagraphFormat.CharacterUnitLeftIndent = float.Parse('0');            WApp.Selection.ParagraphFormat.CharacterUnitRightIndent = float.Parse('0');            WApp.Selection.ParagraphFormat.CharacterUnitFirstLineIndent = float.Parse('0');            WApp.Selection.ParagraphFormat.LineUnitBefore = float.Parse('0');            WApp.Selection.ParagraphFormat.LineUnitAfter = float.Parse('0');            WApp.Selection.ParagraphFormat.AutoAdjustRightIndent = 1;            WApp.Selection.ParagraphFormat.DisableLineHeightGrid =0;            WApp.Selection.ParagraphFormat.FarEastLineBreakControl =1;            WApp.Selection.ParagraphFormat.WordWrap = 1;            WApp.Selection.ParagraphFormat.HangingPunctuation = 1;            WApp.Selection.ParagraphFormat.HalfWidthPunctuationOnTopOfLine = 0;            WApp.Selection.ParagraphFormat.AddSpaceBetweenFarEastAndAlpha = 1;            WApp.Selection.ParagraphFormat.AddSpaceBetweenFarEastAndDigit = 1;            WApp.Selection.ParagraphFormat.BaseLineAlignment = Microsoft.Office.Interop.Word.WdBaselineAlignment.wdBaselineAlignAuto;五,、字體格式設(shè)定//字體格式設(shè)定            WApp.Selection.Font.NameFarEast = '華文中宋';            WApp.Selection.Font.NameAscii = 'Times New Roman';            WApp.Selection.Font.NameOther = 'Times New Roman';            WApp.Selection.Font.Name = '宋體';            WApp.Selection.Font.Size = float.Parse('14');            WApp.Selection.Font.Bold = 0;            WApp.Selection.Font.Italic = 0;            WApp.Selection.Font.Underline = Microsoft.Office.Interop.Word.WdUnderline.wdUnderlineNone;            WApp.Selection.Font.UnderlineColor = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic;            WApp.Selection.Font.StrikeThrough =0;//刪除線            WApp.Selection.Font.DoubleStrikeThrough = 0;//雙刪除線            WApp.Selection.Font.Outline =0;//空心            WApp.Selection.Font.Emboss = 0;//陽(yáng)文            WApp.Selection.Font.Shadow = 0;//陰影            WApp.Selection.Font.Hidden = 0;//隱藏文字            WApp.Selection.Font.SmallCaps = 0;//小型大寫(xiě)字母            WApp.Selection.Font.AllCaps = 0;//全部大寫(xiě)字母            WApp.Selection.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic;            WApp.Selection.Font.Engrave = 0;//陰文            WApp.Selection.Font.Superscript = 0;//上標(biāo)            WApp.Selection.Font.Subscript = 0;//下標(biāo)            WApp.Selection.Font.Spacing = float.Parse('0');//字符間距            WApp.Selection.Font.Scaling = 100;//字符縮放            WApp.Selection.Font.Position = 0;//位置            WApp.Selection.Font.Kerning = float.Parse('1');//字體間距調(diào)整            WApp.Selection.Font.Animation = Microsoft.Office.Interop.Word.WdAnimation.wdAnimationNone;//文字效果            WApp.Selection.Font.DisableCharacterSpaceGrid =false;            WApp.Selection.Font.EmphasisMark = Microsoft.Office.Interop.Word.WdEmphasisMark.wdEmphasisMarkNone;六,、終于找到了獲取光標(biāo)位置的東東。那里找到的忘了,,感謝提供的老大,。放到這里供大家參考。有了這個(gè)和上面內(nèi)容,,相信大家對(duì)word文檔的控制應(yīng)該到了隨心所欲的地步,,爽啊獲取的c#語(yǔ)法 //get_InformationSelection.get_Information(WdInformation.wdActiveEndPageNumber)//關(guān)于行號(hào)-頁(yè)號(hào)-列號(hào)-位置            //information 屬性             //返回有關(guān)指定的所選內(nèi)容或區(qū)域的信息。variant 類(lèi)型,,只讀,。             //expression.information(type)             //expression 必需。該表達(dá)式返回一個(gè) range 或 selection 對(duì)象,。             //type long 類(lèi)型,,必需。需要返回的信息,??扇∠铝?wdinformation 常量之一:             //wdactiveendadjustedpagenumber 返回頁(yè)碼,在該頁(yè)中包含指定的所選內(nèi)容或區(qū)域的活動(dòng)結(jié)尾,。如果設(shè)置了一個(gè)起始頁(yè)碼,,并對(duì)頁(yè)碼進(jìn)行了手工調(diào)整,則返回調(diào)整過(guò)的頁(yè)碼,。             //wdactiveendpagenumber 返回頁(yè)碼,,在該頁(yè)中包含指定的所選內(nèi)容或區(qū)域的活動(dòng)結(jié)尾,,頁(yè)碼從文檔的開(kāi)頭開(kāi)始計(jì)算而不考慮對(duì)頁(yè)碼的任何手工調(diào)整。             //wdactiveendsectionnumber 返回節(jié)號(hào),,在該節(jié)中包含了指定的所選內(nèi)容或區(qū)域的活動(dòng)結(jié)尾,。             //wdatendofrowmarker 如果指定的所選內(nèi)容或區(qū)域位于表格的行結(jié)尾標(biāo)記處,則本參數(shù)返回 true,。             //wdcapslock 如果大寫(xiě)字母鎖定模式有效,,則本參數(shù)返回 true。             //wdendofrangecolumnnumber 返回表格列號(hào),,在該表格列中包含了指定的所選內(nèi)容或區(qū)域的活動(dòng)結(jié)尾,。             //wdendofrangerownumber 返回表格行號(hào),在該表格行包含了指定的所選內(nèi)容或區(qū)域的活動(dòng)結(jié)尾,。             //wdfirstcharactercolumnnumber 返回指定的所選內(nèi)容或區(qū)域中第一個(gè)字符的位置,。如果所選內(nèi)容或區(qū)域是折疊的,則返回所選內(nèi)容或區(qū)域右側(cè)緊接著的字符編號(hào),。             //wdfirstcharacterlinenumber 返回所選內(nèi)容中第一個(gè)字符的行號(hào),。如果 pagination 屬性為 false,或 draft 屬性為 true,,則返回 - 1,。             //wdframeisselected 如果所選內(nèi)容或區(qū)域是一個(gè)完整的圖文框文本框,則本參數(shù)返回 true,。             //wdheaderfootertype 返回一個(gè)值,,該值表明包含了指定的所選內(nèi)容或區(qū)域的頁(yè)眉或頁(yè)腳的類(lèi)型,如下表所示,。 值 頁(yè)眉或頁(yè)腳的類(lèi)型             //- 1 無(wú)             //0 偶數(shù)頁(yè)頁(yè)眉             //1 奇數(shù)頁(yè)頁(yè)眉             //2 偶數(shù)頁(yè)頁(yè)腳             //3 奇數(shù)頁(yè)頁(yè)腳             //4 第一個(gè)頁(yè)眉             //5 第一個(gè)頁(yè)腳             //wdhorizontalpositionrelativetopage 返回指定的所選內(nèi)容或區(qū)域的水平位置,。該位置是所選內(nèi)容或區(qū)域的左邊與頁(yè)面的左邊之間的距離,以磅為單位,。如果所選內(nèi)容或區(qū)域不可見(jiàn),,則返回 - 1。             //wdhorizontalpositionrelativetotextboundary 返回指定的所選內(nèi)容或區(qū)域相對(duì)于周?chē)罱恼倪吔绲淖筮叺乃轿恢?,以磅為單位,。如果所選內(nèi)容或區(qū)域沒(méi)有顯示在當(dāng)前屏幕,則本參數(shù)返回 - 1,。             //wdinclipboard 有關(guān)此常量的詳細(xì)內(nèi)容,,請(qǐng)參閱 microsoft office 98 macintosh 版的語(yǔ)言參考幫助。             //wdincommentpane 如果指定的所選內(nèi)容或區(qū)域位于批注窗格,,則返回 true,。             //wdinendnote 如果指定的所選內(nèi)容或區(qū)域位于頁(yè)面視圖的尾注區(qū)內(nèi),或者位于普通視圖的尾注窗格中,則本參數(shù)返回 true,。             //wdinfootnote 如果指定的所選內(nèi)容或區(qū)域位于頁(yè)面視圖的腳注區(qū)內(nèi),或者位于普通視圖的腳注窗格中,,則本參數(shù)返回 true,。             //wdinfootnoteendnotepane 如果指定的所選內(nèi)容或區(qū)域位于頁(yè)面視圖的腳注或尾注區(qū)內(nèi),或者位于普通視圖的腳注或尾注窗格中,,則本參數(shù)返回 true,。詳細(xì)內(nèi)容,請(qǐng)參閱前面的 wdinfootnote 和 wdinendnote 的說(shuō)明,。             //wdinheaderfooter 如果指定的所選內(nèi)容或區(qū)域位于頁(yè)眉或頁(yè)腳窗格中,,或者位于頁(yè)面視圖的頁(yè)眉或頁(yè)腳中,則本參數(shù)返回 true,。             //wdinmasterdocument 如果指定的所選內(nèi)容或區(qū)域位于主控文檔中,,則本參數(shù)返回 true。             //wdinwordmail 返回一個(gè)值,,該值表明了所選內(nèi)容或區(qū)域的的位置,,如下表所示。值 位置             //0 所選內(nèi)容或區(qū)域不在一條電子郵件消息中,。             //1 所選內(nèi)容或區(qū)域位于正在發(fā)送的電子郵件中,。             //2 所選內(nèi)容或區(qū)域位于正在閱讀的電子郵件中。             //wdmaximumnumberofcolumns 返回所選內(nèi)容或區(qū)域中任何行的最大表格列數(shù),。             //wdmaximumnumberofrows 返回指定的所選內(nèi)容或區(qū)域中表格的最大行數(shù),。             //wdnumberofpagesindocument 返回與所選內(nèi)容或區(qū)域相關(guān)聯(lián)的文檔的頁(yè)數(shù)。             //wdnumlock 如果 num lock 有效,,則本參數(shù)返回 true,。             //wdovertype 如果改寫(xiě)模式有效,則本參數(shù)返回 true,??捎?overtype 屬性改變改寫(xiě)模式的狀態(tài)。             //wdreferenceoftype 返回一個(gè)值,,該值表明所選內(nèi)容相對(duì)于腳注,、尾注或批注引用的位置,如下表所示,。 值 描述             //— 1 所選內(nèi)容或區(qū)域包含,、但不只限定于腳注、尾注或批注引用中,。             //0 所選內(nèi)容或區(qū)域不在腳注,、尾注或批注引用之前。             //1 所選內(nèi)容或區(qū)域位于腳注引用之前。             //2 所選內(nèi)容或區(qū)域位于尾注引用之前,。             //3 所選內(nèi)容或區(qū)域位于批注引用之前,。             //wdrevisionmarking 如果修訂功能處于活動(dòng)狀態(tài),則本參數(shù)返回 true,。             //wdselectionmode 返回一個(gè)值,,該值表明當(dāng)前的選定模式,如下表所示,。 值 選定模式             //0 常規(guī)選定             //1 擴(kuò)展選定             //2 列選定             //wdstartofrangecolumnnumber 返回所選內(nèi)容或區(qū)域的起點(diǎn)所在的表格的列號(hào),。             //wdstartofrangerownumber 返回所選內(nèi)容或區(qū)域的起點(diǎn)所在的表格的行號(hào)。             //wdverticalpositionrelativetopage 返回所選內(nèi)容或區(qū)域的垂直位置,,即所選內(nèi)容的上邊與頁(yè)面的上邊之間的距離,,以磅為單位。如果所選內(nèi)容或區(qū)域沒(méi)有顯示在屏幕上,,則本參數(shù)返回 - 1,。             //wdverticalpositionrelativetotextboundary 返回所選內(nèi)容或區(qū)域相對(duì)于周?chē)罱恼倪吔绲纳线叺拇怪蔽恢茫园鯙閱挝?。如果所選內(nèi)容或區(qū)域沒(méi)有顯示在屏幕上,,則本參數(shù)返回 - 1。             //wdwithintable 如果所選內(nèi)容位于一個(gè)表格中,,則本參數(shù)返回 true,。             //wdzoompercentage 返回由 percentage 屬性設(shè)置的當(dāng)前的放大百分比。
復(fù)制代碼

參考資料:

http://blog.csdn.net/ruby97/article/details/7406806

http://blog.csdn.net/yhrun/article/details/7674540

http://www.cnblogs.com/eye-like/p/4121219.html

http://www.cnblogs.com/knowledgesea/archive/2013/05/24/3095376.html

http://www.cnblogs.com/shi2172843/p/5848116.html

https://msdn.microsoft.com/en-us/library/bb257531(v=office.12).aspx

http://wenku.baidu.com/view/80ec0a6c1eb91a37f1115cab.html?from=search


---------------------
作者:xh6300
來(lái)源:CNBLOGS
原文:https://www.cnblogs.com/xh6300/p/5915717.html
版權(quán)聲明:本文為作者原創(chuàng)文章,,轉(zhuǎn)載請(qǐng)附上博文鏈接,!
復(fù)制代碼

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多