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

标签 c# interop powerpoint openxml

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

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

  1. 类型:层次结构。
  2. 姓名:组织结构图。
  3. 文本:Madan4。

使用或不使用互操作 到目前为止,通过使用 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());    
        }
    }
}

最佳答案

我从 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);
}

关于c# - 如何从幻灯片中获取 SmartArt 信息(文本、名称、类型)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33496224/

相关文章:

python - 使用 python-pptx 编辑页眉和页脚

java - 如何使用 android 应用程序远程控制 office 2010 PowerPoint 演示文稿?

c# - 在 WCF 中使用 netsh 添加端口作为没有管理员权限的域管理员

c# - 在 c++/cli dll 中引发事件并在 c# 中使用

.net - 以编程方式查找完全限定的 .NET 程序集名称(从简单名称,对于给定的 .NET 版本)?

c - Fortran-C 桥接中的字符串数组使用 iso_c_binding

c# - 使用 System.Runtime.InteropServices 但未找到 HandleRef

c# - 在 C# 中以编程方式执行 gacutil 操作?

c# - 如何测试 winforms 应用程序

asp.net - 使用open xml在powerpoint中设置图像大小