在EPPLUS ExcelChart中关闭圆角

时间:2018-01-09 03:42:23

标签: c# wpf epplus epplus-4

阅读Add RoundedCorners property to ExcelChart我猜EPPLUS默认情况下会向ExcelChart添加圆角。我喜欢摆脱圆角并将ExcelChart保持在干净的方角,但似乎无法在EPPLUS中找到一种方法(我可以在Excel中轻松切换)。

我浏览了每个房产,并尝试了以下内容:

ExcelChart ec = ws.Drawings.AddChart("LineChart01", eChartType.LineMarkers);
ec.Title.Text = "LineChart01";
ec.Border.LineStyle = eLineStyle.Solid;
ec.Border.LineCap = eLineCap.Square;
ec.PlotArea.Border.LineCap = eLineCap.Square; 

EPPLUS Chart Rounded Corners

1 个答案:

答案 0 :(得分:3)

虽然添加RoundedCorners属性的提交在4.1.1版本下被标记,但实际上它只包含在4.5 beta版本中。

来自4.5.0.0 beta 1发行说明:

  

4.5.0.0 Beta 1
  ...
  * RoundedCorners属性添加到ExcelChart

我假设您使用的是稳定版本,这解释了为什么您没有看到它。如果你想坚持使用当前的稳定版本,你可以在此期间通过直接修改xml来创建一个取圆角的方法。

例如使用扩展方法:

public static class ExcelChartExtensions
{
    /// <summary>
    /// Whether to show Rounded Corners or not for the border of the Excel Chart.
    /// </summary>
    public static void ShowRoundedCorners(this ExcelChart chart, bool show)
    {
        XmlElement roundedCornersElement = (XmlElement)chart.ChartXml.SelectSingleNode("c:chartSpace/c:roundedCorners", chart.WorkSheet.Drawings.NameSpaceManager);

        if (roundedCornersElement == null)
        {
            XmlElement chartSpaceElement = chart.ChartXml["c:chartSpace"];
            roundedCornersElement = chart.ChartXml.CreateElement("c:roundedCorners", chartSpaceElement.NamespaceURI);
            chartSpaceElement.AppendChild(roundedCornersElement);
        }

        roundedCornersElement.SetAttribute("val", Convert.ToInt32(show).ToString());
    }
}

然后应用于您的ExcelChart

ec.ShowRoundedCorners(false);