C# 图表上的Epplus错误条

C# 图表上的Epplus错误条,c#,epplus,C#,Epplus,使用Epplus,是否有方法将错误条添加到图表系列中 我没有发现任何关于Epplus能够在任何地方处理错误条的提及,并且在图表或任何单个系列中似乎都没有任何属性或方法表明您可以访问/创建错误条 我正在尝试重新创建此图表,我只剩下错误条: 我没有找到任何使用Epplus添加错误条的方法,因此我只是在正常的互操作中打开文件,并通过以下方式添加错误条: Excel.Application app = new Excel.Application(); Excel.Workbook workbook =

使用Epplus,是否有方法将错误条添加到图表系列中

我没有发现任何关于Epplus能够在任何地方处理错误条的提及,并且在图表或任何单个系列中似乎都没有任何属性或方法表明您可以访问/创建错误条

我正在尝试重新创建此图表,我只剩下错误条:


我没有找到任何使用Epplus添加错误条的方法,因此我只是在正常的互操作中打开文件,并通过以下方式添加错误条:

Excel.Application app = new Excel.Application();
Excel.Workbook workbook = app.Workbooks.Open(filename);
Excel.Worksheet sheet = workbook.Worksheets[1];

Excel.Chart graph = sheet.ChartObjects("Per Employee Average (Run)").Chart;
Excel.Series series = graph.SeriesCollection("Employee Average");
Excel.Range range = sheet.get_Range(Range.Column(cRange.BackStdDev) + 2 + ":" + Range.Column(cRange.BackStdDev) + Range.Row(rRange.RunBackEnd));
series.ErrorBar(Excel.XlErrorBarDirection.xlX, Excel.XlErrorBarInclude.xlErrorBarIncludeBoth, Excel.XlErrorBarType.xlErrorBarTypeCustom, range, range);

我已经提交了一个pull请求,其中包含正确的代码来处理EPPlus中的错误条,但如果有人需要在该请求被接受之前执行该请求,则您可以使用以下代码手动执行该请求:

public static void AddErrorBars(ExcelBarChart chart, string customFullRange)
{
    var nsmgr = new XmlNamespaceManager(chart.ChartXml.NameTable);
    nsmgr.AddNamespace("c", "http://schemas.openxmlformats.org/drawingml/2006/chart");
    nsmgr.AddNamespace("a", "http://schemas.openxmlformats.org/drawingml/2006/main");
    nsmgr.AddNamespace("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
    nsmgr.AddNamespace("c16r2", "http://schemas.microsoft.com/office/drawing/2015/06/chart");

    XNamespace ns_c = "http://schemas.openxmlformats.org/drawingml/2006/chart";
    XNamespace ns_a = "http://schemas.openxmlformats.org/drawingml/2006/main";

    var xDoc = XDocument.Parse(chart.ChartXml.InnerXml);

    var cSer = xDoc.XPathSelectElement("/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser", nsmgr);

    cSer.Add(
        new XElement(ns_c + "errBars",

            new XElement(ns_c + "errBarType",
                new XAttribute("val", "plus")
            ),

            new XElement(ns_c + "errValType",
                new XAttribute("val", "cust")
            ),

            new XElement(ns_c + "noEndCap",
                new XAttribute("val", "0")
            ),

            new XElement(ns_c + "plus",
                new XElement(ns_c + "numRef",
                    new XElement(ns_c + "f", customFullRange)
                )
            )
        )
    );

    chart.ChartXml.LoadXml(xDoc.ToString());
}