ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# VSTO 将word 里面的图表保存成图片

2019-12-23 14:57:34  阅读:387  来源: 互联网

标签:word c# doc item Range WriteLine Debug new VSTO


   private void button1_Click(object sender, RibbonControlEventArgs e)
        {
         
            Document doc = Globals.ThisAddIn.Application.ActiveDocument;
            Paragraphs pp= doc.Content.Paragraphs;
            Form1 form = new Form1();
            form.Show();
            Tables  tablelist=  doc.Tables; 
            Table table = tablelist[1];           
            Columns cc= table.Columns;
            Rows rr = table.Rows;
            Shapes shapelist=  doc.Shapes;
            Application m_app = Globals.ThisAddIn.Application;
            Bookmarks booklist = doc.Bookmarks;
            Range rangelist = doc.Range();
            int nCount = m_app.ActiveDocument.Styles.Count;

            for (int j = 1; j <= nCount; j++)
            {
                Microsoft.Office.Interop.Word.Style stl = m_app.ActiveDocument.Styles[j];
               
            }
            Paragraphs ppplist = doc.Paragraphs;
            List<Node> mu1 = new List<Node>();
            List<string> mu2 = new List<string>();
            List<string> valuelist = new List<string>();
            // Sections sectiongs=  doc.Sections;
            //foreach(Section s in sectiongs)
            //{
               
            //   Debug.WriteLine( s.Range);
            //}
            foreach (Paragraph item in doc.Paragraphs)
            {
                
                Microsoft.Office.Interop.Word.Style style_Word = (Microsoft.Office.Interop.Word.Style)item.get_Style();
                Debug.WriteLine("style_Word:" + style_Word.NameLocal);
                Tables tablearray = item.Range.Tables;
                if(tablearray.Count>0)
                {
                    Table onetable = tablearray[1];
                    Debug.WriteLine("tabletitle:" + onetable.Title);
                    //Debug.WriteLine("tabletitle:" + onetable.Range.Copy());
                    var bits = (byte[])onetable.Range.EnhMetaFileBits;
                    System.IO.MemoryStream ms = new System.IO.MemoryStream(bits);
                    var ret = Image.FromStream(ms);
                    img = ret;
                    form.picturebox.Image = img;
                    //foreach (Row a in onetable.Rows)
                    //{
                    //    Debug.WriteLine("rowcell:" + a.Cells[0].Range.Text);
                    //}
                    //break;
                }               
                Debug.WriteLine("tableCount:" + tablearray.Count);
                var lll = item.Range.ShapeRange;
                Debug.WriteLine("ShapeRange:" + lll.Count);
                Debug.WriteLine("ppp:"+ item.Range.Text);
                
                
              
             
                string str=string.Empty;
                if(!string.IsNullOrEmpty(item.Range.Text))
                {
                    valuelist.Add(item.Range.Text);
                }
                if (style_Word.NameLocal == "目录 1")
                {
                    mu1.Add(new Node() { value = item.Range.Text });
                }

                //Form1 form = new Form1(mu1, img);
                //form.Show();

            }

          
        }

 

标签:word,c#,doc,item,Range,WriteLine,Debug,new,VSTO
来源: https://www.cnblogs.com/gisbeginner/p/12083707.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有