C# 添加、修改、刪除Excel圖表數據標簽


圖表中,圖表數據標簽以數據化形式表現圖表中的特定數據,可增強圖表的可讀性。我們可以對圖表添加數據標簽,也可以對已有的數據標簽進行修改或者刪除,下面將通過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");
        }
    }
}

 

運行程序后可查看數據標簽刪除效果。

 

(本文完)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM