2015-11-04 121 views
0

我必须从图表中找到以下信息。 图图表ChartName在它 enter image description here如何从幻灯片中获取图表类型和名称?

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

  1. 类型:列
  2. :簇状柱形图。

使用或不使用互操作直到现在通过使用互操作我可以得到具有属性的图表类型ChartType(下面是代码)。但它给了我xlColumnClustered从我来了解是什么,但我想确切的名称和类型。

if (shape.HasChart == MsoTriState.msoTrue) 
{ 
    var val1 = shape.Chart; 
    string category = val1.ChartType.ToString(); 
    Console.WriteLine("Smartart : {0} \tCategory : {1}\t Name : {2}", (i++).ToString(), category, 1); 
} 

回答

1

从图表类型中,您不会得到比xlColumnClustered更具体的值。这是所有图表类型的列表:

https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlcharttype.aspx

这只是一个枚举。因此,您可能可以访问该描述,但如果不能,则必须实现自己的逻辑,将这些枚举值转换为更具描述性的文本以供显示。


那么对于Chart.Name,它看起来像你刚刚得到*sheetname* Chart N,其中N是当然的图表实例表上的数字:

https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.chart.name.aspx

然而,此位以及:

尽管Name属性是只读的,但您可以使用P:Microsoft.Office.Interop.Excel.ChartObject.N修改名称的一部分父T的ame属性:Microsoft.Office.Interop.Excel.ChartObject。您指定的新名称会替换由Name属性返回的字符串中的“Chart n”子字符串。例如,以下代码将图表控件的名称属性值从Sheet1图表1更改为Sheet1 SalesChart。

Excel.ChartObject chartObjectParent = chart1.Parent as Excel.ChartObject; 
chartObjectParent.Name = "SalesChart"; 

// This message box displays "Sheet1 SalesChart". 
MessageBox.Show("The new chart name is: " + chart1.Name); 
+0

感谢您的时间。我也尝试过chart.name属性,但它给了我“contentplaceholder9”,并且它在图表中有所不同 – madan