vsto-Word相关操作
Posted 一只蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vsto-Word相关操作相关的知识,希望对你有一定的参考价值。
//添加页码到页脚 Document doc = Globals.ThisAddIn.Application.ActiveDocument; HeaderFooter hprimary= doc.Sections[1].Footers[WdHeaderFooterIndex.wdHeaderFooterPrimary]; hprimary.Range.Fields.Add(hprimary.Range, WdFieldType.wdFieldPage);
//添加页脚并显示页码 Document doc = Globals.ThisAddIn.Application.ActiveDocument; Window activeWindow = doc.Application.ActiveWindow; object currentPage = WdFieldType.wdFieldPage; object totalPages = WdFieldType.wdFieldNumPages; // Go to the Footer view activeWindow.ActivePane.View.SeekView = WdSeekView.wdSeekCurrentPageFooter; // Right-align the current selection activeWindow.ActivePane.Selection.Paragraphs.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; // Type the page number in ‘Page X of Y‘ format activeWindow.Selection.TypeText("第 "); activeWindow.Selection.Fields.Add( activeWindow.Selection.Range, ref currentPage); activeWindow.Selection.TypeText("页,共 "); activeWindow.Selection.Fields.Add( activeWindow.Selection.Range, ref totalPages); activeWindow.Selection.TypeText("页 "); //清除页眉横线(不知道为什么页眉会多一条横线) doc.Sections[1].Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Borders[WdBorderType.wdBorderBottom].LineStyle =WdLineStyle.wdLineStyleNone; // Go back to the Main Document view activeWindow.ActivePane.View.SeekView = WdSeekView.wdSeekMainDocument;
//页面配置 PageSetup PAGE = doc.PageSetup; PAGE.PaperSize = WdPaperSize.wdPaperA3; //A3纸 PAGE.Orientation = WdOrientation.wdOrientLandscape; //横向 PAGE.TextColumns.SetCount(3); //分3栏
//定位选中内容的下一行进行操作
Selection sel = Globals.ThisAddIn.Application.Selection; //获取选中内容 sel.InsertParagraph(); //插入新的段落行 Range range = sel.GoToNext(WdGoToItem.wdGoToLine); //定位到新的段落行 range.Text="当前行下一行进行编辑";
//获取指定区域中的文本、图片、图形
Document doc = Globals.ThisAddIn.Application.ActiveDocument; Range r = doc.Range(); Range range = doc.Range(r.Bookmarks["bookmark1"].Start, r.Bookmarks["bookmark2"].Start); string text = range.Text; //获取指定区域中的文本内容 //int c = Globals.ThisAddIn.Application.ActiveDocument.Shapes.Count; Shape s = Globals.ThisAddIn.Application.ActiveDocument.Shapes[1]; //获取当前文档中第一个图形对象 InlineShape igs = Globals.ThisAddIn.Application.ActiveDocument.InlineShapes[1]; //获取当前文档中第一个图片对象 InlineShape idfs= range.InlineShapes[1]; //获取指定区域中第一个图片对象 idfs.Range.Select(); Shape sr = range.ShapeRange[1]; //获取指定区域中第一个图形对象
internal void GetImagesInDocument() { // iterate through each shape foreach (InlineShape ils in Globals.ThisAddIn.Application.ActiveDocument.InlineShapes) { // validate if (ils != null) { // check if image if (ils.Type == Microsoft.Office.Interop.Word.WdInlineShapeType.wdInlineShapePicture) { // you can do what you want with the object here ils.ScaleHeight = 40; ils.ScaleWidth = 40; } } } }
//Table的相关操作 Table t=range.Tables.Add(range,2,2); t.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleThickThinLargeGap; ////设置Table的外边框线格式 t.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle; foreach (Row item in t.Rows) { item.Height = 32; //设置行高 Range rowRange = item.Cells [1].Range; Table rowT = rowRange.Tables.Add(rowRange, 1, 17); //嵌套Table rowT.Rows.Height = 24; rowT.Columns.Width = 24; //设置列宽 rowT.Borders .OutsideLineStyle = WdLineStyle.wdLineStyleSingle; rowT.Borders.InsideLineStyle = WdLineStyle.wdLineStyleSingle; //rowT.Borders[WdBorderType.wdBorderTop].LineStyle = WdLineStyle.wdLineStyleSingle; //设置边框顶线 //rowT.Borders[WdBorderType.wdBorderBottom].LineStyle = WdLineStyle.wdLineStyleSingle; //设置边框底线 //rowT.Borders[WdBorderType.wdBorderLeft].LineStyle = WdLineStyle.wdLineStyleSingle; //rowT.Borders[WdBorderType.wdBorderRight].LineStyle = WdLineStyle.wdLineStyleSingle; //rowT.Borders[WdBorderType.wdBorderVertical].LineStyle = WdLineStyle.wdLineStyleSingle; //设置边框内纵线 //rowT.Borders[WdBorderType.wdBorderHorizontal].LineStyle = WdLineStyle.wdLineStyleSingle; //设置边框内横线 item.Cells.VerticalAlignment =WdCellVerticalAlignment.wdCellAlignVerticalCenter; //设置单元格垂直居中 } //向单元格添加文本 t.Cell(1,1).Range.Text="Test"; //下标都是从1开始 //单元格中文本格式比较复杂的可以作为段落 Paragraph pTitle = t.Cell(2, 1).Range.Paragraphs.Add(t.Cell(1, 1).Range); pTitle.Range.Font.Size = 24; pTitle.Range.Text = "这里是标题"; pTitle.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; //设置水平居中
以上是关于vsto-Word相关操作的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程
VSCode自定义代码片段15——git命令操作一个完整流程
spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段