如何将标签添加到大到足以包含它们的饼块上,以及那些不是的标签?
How can I add labels onto the pie pieces that are large enough to contain them, and alongside those that aren't?
我有生成此 Excel 图表的简单伪造数据:
这是代码:
object misValue = System.Reflection.Missing.Value;
//add data
_xlSheet.Cells[11, 11] = "";
_xlSheet.Cells[11, 12] = "Student1";
_xlSheet.Cells[11, 13] = "Student2";
_xlSheet.Cells[11, 14] = "Student3";
_xlSheet.Cells[12, 11] = "Term1";
_xlSheet.Cells[12, 12] = "80";
_xlSheet.Cells[12, 13] = "65";
_xlSheet.Cells[12, 14] = "45";
_xlSheet.Cells[13, 11] = "Term2";
_xlSheet.Cells[13, 12] = "78";
_xlSheet.Cells[13, 13] = "72";
_xlSheet.Cells[13, 14] = "60";
_xlSheet.Cells[14, 11] = "Term3";
_xlSheet.Cells[14, 12] = "82";
_xlSheet.Cells[14, 13] = "80";
_xlSheet.Cells[14, 14] = "65";
_xlSheet.Cells[15, 11] = "Term4";
_xlSheet.Cells[15, 12] = "75";
_xlSheet.Cells[15, 13] = "82";
_xlSheet.Cells[15, 14] = "68";
Excel.Range chartRange;
Excel.ChartObjects xlCharts = (Excel.ChartObjects)_xlSheet.ChartObjects(Type.Missing);
Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(468, 160, 348, 268); //10, 80, 300, 250);
Excel.Chart chartPage = myChart.Chart;
chartRange = _xlSheet.get_Range("K11", "O15");
chartPage.SetSourceData(chartRange, misValue);
chartPage.ChartType = Excel.XlChartType.xlPieExploded; // xl3DPie; xlPie; xlColumnClustered;
我需要做什么才能将标签添加到大到足以容纳它们的饼块上,并在没有标签的旁边添加标签,箭头指向相应的饼块?
添加标签就这么简单:
chart.ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowPercent, Excel.XlDataLabelsType.xlDataLabelsShowLabel, true, false, false, true, false, true);
在上下文中:
object misValue = System.Reflection.Missing.Value;
_xlSheet.Cells[12, 11] = "John";
_xlSheet.Cells[12, 12] = "80";
_xlSheet.Cells[12, 13] = "165";
_xlSheet.Cells[12, 14] = "45";
_xlSheet.Cells[13, 11] = "Paul";
_xlSheet.Cells[13, 12] = "78";
_xlSheet.Cells[13, 13] = "72";
_xlSheet.Cells[13, 14] = "6";
_xlSheet.Cells[14, 11] = "George";
_xlSheet.Cells[14, 12] = "182";
_xlSheet.Cells[14, 13] = "180";
_xlSheet.Cells[14, 14] = "165";
_xlSheet.Cells[15, 11] = "Ringo";
_xlSheet.Cells[15, 12] = "7";
_xlSheet.Cells[15, 13] = "8";
_xlSheet.Cells[15, 14] = "6";
Excel.Range chartRange;
Excel.ChartObjects xlCharts =
(Excel.ChartObjects)_xlSheet.ChartObjects(Type.Missing);
Excel.ChartObject chartObj = (Excel.ChartObject)xlCharts.Add(468, 160, 348, 268);
Excel.Chart chart = chartObj.Chart;
chartRange = _xlSheet.Range[_xlSheet.Cells[12, 11], _xlSheet.Cells[15, 14]];
chart.SetSourceData(chartRange, misValue);
chart.ChartType = Excel.XlChartType.xlPieExploded;
chart.ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowPercent,
Excel.XlDataLabelsType.xlDataLabelsShowLabel, true, false, false, true, false, true);
它制作了这张精美的图形,堪称毕加索的弟子:
我有生成此 Excel 图表的简单伪造数据:
这是代码:
object misValue = System.Reflection.Missing.Value;
//add data
_xlSheet.Cells[11, 11] = "";
_xlSheet.Cells[11, 12] = "Student1";
_xlSheet.Cells[11, 13] = "Student2";
_xlSheet.Cells[11, 14] = "Student3";
_xlSheet.Cells[12, 11] = "Term1";
_xlSheet.Cells[12, 12] = "80";
_xlSheet.Cells[12, 13] = "65";
_xlSheet.Cells[12, 14] = "45";
_xlSheet.Cells[13, 11] = "Term2";
_xlSheet.Cells[13, 12] = "78";
_xlSheet.Cells[13, 13] = "72";
_xlSheet.Cells[13, 14] = "60";
_xlSheet.Cells[14, 11] = "Term3";
_xlSheet.Cells[14, 12] = "82";
_xlSheet.Cells[14, 13] = "80";
_xlSheet.Cells[14, 14] = "65";
_xlSheet.Cells[15, 11] = "Term4";
_xlSheet.Cells[15, 12] = "75";
_xlSheet.Cells[15, 13] = "82";
_xlSheet.Cells[15, 14] = "68";
Excel.Range chartRange;
Excel.ChartObjects xlCharts = (Excel.ChartObjects)_xlSheet.ChartObjects(Type.Missing);
Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(468, 160, 348, 268); //10, 80, 300, 250);
Excel.Chart chartPage = myChart.Chart;
chartRange = _xlSheet.get_Range("K11", "O15");
chartPage.SetSourceData(chartRange, misValue);
chartPage.ChartType = Excel.XlChartType.xlPieExploded; // xl3DPie; xlPie; xlColumnClustered;
我需要做什么才能将标签添加到大到足以容纳它们的饼块上,并在没有标签的旁边添加标签,箭头指向相应的饼块?
添加标签就这么简单:
chart.ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowPercent, Excel.XlDataLabelsType.xlDataLabelsShowLabel, true, false, false, true, false, true);
在上下文中:
object misValue = System.Reflection.Missing.Value;
_xlSheet.Cells[12, 11] = "John";
_xlSheet.Cells[12, 12] = "80";
_xlSheet.Cells[12, 13] = "165";
_xlSheet.Cells[12, 14] = "45";
_xlSheet.Cells[13, 11] = "Paul";
_xlSheet.Cells[13, 12] = "78";
_xlSheet.Cells[13, 13] = "72";
_xlSheet.Cells[13, 14] = "6";
_xlSheet.Cells[14, 11] = "George";
_xlSheet.Cells[14, 12] = "182";
_xlSheet.Cells[14, 13] = "180";
_xlSheet.Cells[14, 14] = "165";
_xlSheet.Cells[15, 11] = "Ringo";
_xlSheet.Cells[15, 12] = "7";
_xlSheet.Cells[15, 13] = "8";
_xlSheet.Cells[15, 14] = "6";
Excel.Range chartRange;
Excel.ChartObjects xlCharts =
(Excel.ChartObjects)_xlSheet.ChartObjects(Type.Missing);
Excel.ChartObject chartObj = (Excel.ChartObject)xlCharts.Add(468, 160, 348, 268);
Excel.Chart chart = chartObj.Chart;
chartRange = _xlSheet.Range[_xlSheet.Cells[12, 11], _xlSheet.Cells[15, 14]];
chart.SetSourceData(chartRange, misValue);
chart.ChartType = Excel.XlChartType.xlPieExploded;
chart.ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowPercent,
Excel.XlDataLabelsType.xlDataLabelsShowLabel, true, false, false, true, false, true);
它制作了这张精美的图形,堪称毕加索的弟子: