圖表中,圖表數據標簽以數據化形式表現圖表中的特定數據,可增強圖表的可讀性。我們可以對圖表添加數據標簽,也可以對已有的數據標簽進行修改或者刪除,下面將通過C#代碼來實現。
使用工具:Spire.XLS for .NET pack
dll文件獲取及引用:
方法1:通過官網下載包。下載后,解壓文件,安裝程序。安裝后,將安裝路徑下Bin文件夾下的Spire.Xls.dll文件添加引用至vs項目程序。如下所示:
方法2:可通過Nuget下載。
C# 示例
【添加數據標簽】
using Spire.Xls; using Spire.Xls.Charts; using System.Drawing; namespace AddDataLables { class Program { static void Main(string[] args) { //加載測試文檔 Workbook workbook = new Workbook(); workbook.LoadFromFile("test.xlsx"); //獲取第一個工作薄以及其中的第一個圖表 Worksheet sheet = workbook.Worksheets[0]; Chart chart = sheet.Charts[0]; //獲取圖表中的指定系列 ChartSerie serie1 = chart.Series[1]; //添加數據標簽,並設置數據標簽樣式 serie1.DataPoints.DefaultDataPoint.DataLabels.HasValue = true; serie1.DataPoints.DefaultDataPoint.DataLabels.FrameFormat.Fill.FillType = ShapeFillType.SolidColor; serie1.DataPoints.DefaultDataPoint.DataLabels.FrameFormat.Fill.ForeColor = Color.White; serie1.DataPoints.DefaultDataPoint.DataLabels.FrameFormat.Border.Pattern = ChartLinePatternType.Solid; serie1.DataPoints.DefaultDataPoint.DataLabels.FrameFormat.Border.Color = Color.Green; ////使用文檔中其他單元格的數據自定義datalabel //ChartSerie serie2 = chart.Series[2]; //serie2.DataPoints.DefaultDataPoint.DataLabels.ValueFromCell = sheet.Range["B4:E4"]; ////添加數據標注 //serie2.DataPoints.DefaultDataPoint.DataLabels.HasWedgeCallout = true; //保存文檔 workbook.SaveToFile("AddDataLable.xlsx"); System.Diagnostics.Process.Start("AddDataLable.xlsx"); } } }
數據標簽效果:
數據標注效果:
【編輯/修改數據標簽】
這里以上面代碼中添加的數據標注為例,進行修改等操作。
using Spire.Xls; using Spire.Xls.Charts; using System.Drawing; namespace ModifyDataLable { class Program { static void Main(string[] args) { //加載文檔 Workbook workbook = new Workbook(); workbook.LoadFromFile("AddDataLable.xlsx"); //獲取第一個工作表以及表里面的第一個圖表 Worksheet sheet = workbook.Worksheets[0]; Chart chart = sheet.Charts[0]; //獲取圖表系列及數據標簽 ChartSerie chartSeries = chart.Series[2]; ChartDataLabels cslabel = chartSeries.DataPoints[1].DataLabels; cslabel.HasLegendKey = true;//設置顯示圖例項標示 cslabel.Position = DataLabelPositionType.Center;//設置數據標簽的位置居中 //自定義數據標簽的位置,默認的原點在圖表左上角; cslabel.IsYMode = true; cslabel.IsXMode = true; cslabel.X = 1100; cslabel.Y = 400; //設置顯示引導線(任意設置一個DataPoint會對整個系列生效,但是只有自定義數據標簽位置之后才會顯示效果) cslabel.ShowLeaderLines = true; //取消楔形標注(任意設置一個DataPoint會對整個系列生效) cslabel.HasWedgeCallout = false; //保存 workbook.SaveToFile("ModifyDatalable.xlsx"); System.Diagnostics.Process.Start("ModifyDatalable.xlsx"); } } }
數據標簽修改效果:
【刪除數據標簽】
using Spire.Xls; using Spire.Xls.Charts; namespace DeleteDataLable { class Program { static void Main(string[] args) { //加載文檔 Workbook workbook = new Workbook(); workbook.LoadFromFile("AddDataLable.xlsx"); //獲取第一個工作表以及表里面的第一個圖表 Worksheet sheet = workbook.Worksheets[0]; Chart chart = sheet.Charts[0]; //刪除所有系列的數據標簽 for (int i = 0; i < chart.Series.Count; i++) { ChartSerie chartSeries = chart.Series[i]; chartSeries.DataPoints.Clear(); } //刪除指定數據系列的數據標簽 //ChartSerie chartSeries = chart.Series[2]; //chartSeries.DataPoints.Clear(); //刪除指定系列中數據標簽的指定值 //ChartSerie chartSeries = chart.Series[2]; //ChartDataLabels cslabel = chartSeries.DataPoints[0].DataLabels; //cslabel.Text = " "; //cslabel.HasLegendKey = false; //保存文檔 workbook.SaveToFile("RemoveDataLable.xlsx"); System.Diagnostics.Process.Start("RemoveDataLable.xlsx"); } } }
運行程序后可查看數據標簽刪除效果。
(本文完)