使用Epplus,是否可以将误差线添加到图表系列中?

我还没有提到Epplus能够在任何地方处理误差线,并且图表或任何单独的系列中似乎都没有任何属性或方法表明可以访问/创建误差线。

我正在尝试重新创建此图表,其中剩下的就是误差线:

c# - 图表上的Epplus误差线-LMLPHP

最佳答案

我已经提交了具有正确代码的拉取请求,以处理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());
}

关于c# - 图表上的Epplus误差线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34743539/

10-09 08:18