使用 C# 使用 Microsoft Office Interop excel 图表中的自定义数据标签 Excel

custom datalabels in excel charts with C# using Microsoft Office Interop Excel

我使用 Microsoft Office Interop Excel 使用 C# 在 Excel 中创建了一个图表,但我在自定义数据标签时遇到了问题

SeriesCollection seriesCollection7 = myChart7.Chart.SeriesCollection();
Series series7 = seriesCollection7.NewSeries();
series7.XValues = xValues7;
series7.Values = values7;
Excel.DataLabel dl1 = (Excel.DataLabel)series7.DataLabels(); // ERROR HERE
dl1.NumberFormat = "#0.0%";

您可以尝试使用以下代码来自定义数据标签。

        Excel.Application app = new Excel.Application();
        app.DisplayAlerts = false;
        object misValue = System.Reflection.Missing.Value;
        Excel.Workbook workbook = app.Workbooks.Open("D:\3.XLSX");
        Excel.Worksheet worksheet = workbook.ActiveSheet;
        Excel.Range xlRange = worksheet.UsedRange;
        Excel.ChartObjects xlCharts = (Excel.ChartObjects)worksheet.ChartObjects(Type.Missing);
        Excel.ChartObject myChart = worksheet.ChartObjects(1);
        Excel.Chart chartPage = myChart.Chart;
        Excel.Series series1 = (Excel.Series)chartPage.SeriesCollection(1);
        series1.HasDataLabels = true;
        Excel.DataLabel dl1 = series1.DataLabels(1);
        dl1.Text = "Test1";
        workbook.Save();
        workbook.Close(true, misValue, misValue);

我做了一个柱形图,我设置了第一个数据标签的第一个点。

喜欢以下内容:

选项 1(感谢@Jack-J-Jun-MSFT)

        chartPage7.ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowValue, false, true, false, false, false, true, true);
        series7.HasDataLabels = true;
        Excel.DataLabel dl1 = series7.DataLabels(0);
        dl1.NumberFormat = "#,0%";

选项 2

        chartPage7.ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowValue, false, true, false, false, false, true, true); // set label

        series7.DataLabels().NumberFormat = "#,0%";