zoukankan      html  css  js  c++  java
  • 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;   //设置水平居中
    一个不努力的人在努力做到努力
  • 相关阅读:
    windows线程消息通信和处理 PostThreadMessage和PeekMessage GetMessage
    如何:对 Windows 窗体控件进行线程安全调用(转载自msdn)
    How to: Develop a Simple Windows Forms Control(转载)
    《Effective C#》 翻译札记(转载)
    对制造者线程和使用者线程进行同步
    用户模式与内核模式(转)
    焊接技巧
    TextBox控件滚动条自动下拉(转)
    books
    CODE::BLOCKS GLUT 完整开发包
  • 原文地址:https://www.cnblogs.com/Betty-IT/p/9072725.html
Copyright © 2011-2022 走看看