如何从幻灯片中获取SmartArt信息(文本,名称,类型)?

时间:2015-11-03 10:03:33

标签: c# interop powerpoint openxml

我必须从智能艺术中找到以下信息。 SmartArt类型 SmartArt名称及其中的文字 enter image description here

从上面的图片我想找到以下信息

  1. 类型:层次结构。
  2. 名称:组织结构图。
  3. 文字:Madan4。
  4. 使用或不使用互操作 到现在为止,通过使用OpenXML,我只能获得智能艺术的文本。

    var diagramDataPartsList = slidePart.DiagramDataParts;
    if (diagramDataPartsList.Count() > 0)
    {
        foreach (var diagramDataParts in diagramDataPartsList)
        {
            var text = diagramDataParts.DataModelRoot.PointList.InnerText;
            if (!string.IsNullOrEmpty(text))
            {
                Console.WriteLine(text.ToString());    
            }
        }
    }
    

1 个答案:

答案 0 :(得分:2)

我从here得到了答案 答案是

if (shape.HasSmartArt == MsoTriState.msoTrue)
{
    var val1 = shape.SmartArt;
    string name = val1.Layout.Name;
    string category = val1.Layout.Category;
    string text1 = "";
    foreach (SmartArtNode node in val1.AllNodes)
    {
        text1 += node.TextFrame2.TextRange.Text;
    }
    Console.WriteLine("Smartart : {0} \tCategory : {1}\t Name : {2} text : {3}", (i++).ToString(), category, name, text1);
}