如何从幻灯片中获取图表类型和名称?
How to get chart type and name of that from a slide?
我必须从图表中找到以下信息。 chartType,ChartName在里面
从上图中我想找到以下信息
- 类型:列
- 名称:聚集列。
使用或不使用互操作直到现在,通过使用互操作,我可以使用 属性 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);
}
您不会从图表类型中获得比 xlColumnClustered
更具体的值。这是所有图表类型的列表:
https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlcharttype.aspx
这只是一个枚举。因此,您可能能够访问描述,但如果不能,则必须实现自己的逻辑,将这些枚举值转换为更具描述性的文本以供显示。
然后对于 Chart.Name
,看起来你只是得到 *sheetname* Chart N
,其中 N 当然是 sheet:
上图表实例的编号
https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.chart.name.aspx
不过,还有一点:
Although the Name property is read-only, you can modify a portion of the name by using the P:Microsoft.Office.Interop.Excel.ChartObject.Name property of the parent T:Microsoft.Office.Interop.Excel.ChartObject. The new name you specify replaces the "Chart n" substring in the string returned by the Name property. For example, the following code changes the Name property value of a Chart control from Sheet1 Chart 1 to 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);
我必须从图表中找到以下信息。 chartType,ChartName在里面
从上图中我想找到以下信息
- 类型:列
- 名称:聚集列。
使用或不使用互操作直到现在,通过使用互操作,我可以使用 属性 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);
}
您不会从图表类型中获得比 xlColumnClustered
更具体的值。这是所有图表类型的列表:
https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlcharttype.aspx
这只是一个枚举。因此,您可能能够访问描述,但如果不能,则必须实现自己的逻辑,将这些枚举值转换为更具描述性的文本以供显示。
然后对于 Chart.Name
,看起来你只是得到 *sheetname* Chart N
,其中 N 当然是 sheet:
https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.chart.name.aspx
不过,还有一点:
Although the Name property is read-only, you can modify a portion of the name by using the P:Microsoft.Office.Interop.Excel.ChartObject.Name property of the parent T:Microsoft.Office.Interop.Excel.ChartObject. The new name you specify replaces the "Chart n" substring in the string returned by the Name property. For example, the following code changes the Name property value of a Chart control from Sheet1 Chart 1 to 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);