如何从幻灯片中获取 SmartArt 信息(文本、名称、类型)?
How to get SmartArt information (text,name,type)from a slide?
我必须从智能艺术中找到以下信息。
SmartArt 类型、SmartArt 名称 以及其中的文本
从上图中我想找到以下信息
- 类型:层次结构。
- 名称: 组织结构图。
- 正文: Madan4.
使用或不使用互操作
到现在用OpenXML我只能得到一个smart art的文本
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);
}
我必须从智能艺术中找到以下信息。
SmartArt 类型、SmartArt 名称 以及其中的文本
从上图中我想找到以下信息
- 类型:层次结构。
- 名称: 组织结构图。
- 正文: Madan4.
使用或不使用互操作 到现在用OpenXML我只能得到一个smart art的文本
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);
}