文檔首頁>>Spire.XLS 系列教程>>Spire.XLS 圖表系列教程:C# Excel 自定義數(shù)據(jù)標(biāo)簽
Spire.XLS 圖表系列教程:C# Excel 自定義數(shù)據(jù)標(biāo)簽
Spire.XLS是一款專業(yè)的Excel控件,無需安裝微軟Excel,也能擁有Excel的全套功能,能夠?yàn)楣S智能化提供完善的Excel需求。
之前介紹過如何設(shè)置現(xiàn)有Excel圖表的數(shù)據(jù)標(biāo)簽樣式,今天本文將著重介紹如何使用Spire.XLS來自定義數(shù)據(jù)標(biāo)簽以及更改現(xiàn)有Excel文檔中數(shù)據(jù)標(biāo)簽的一些其他設(shè)置,比如內(nèi)容,位置等。
使用工作表里面其他單元格的數(shù)據(jù)自定義數(shù)據(jù)標(biāo)簽
代碼如下:
//實(shí)例化一個(gè)Workbook對象并聲明版本 Workbook wb = new Workbook(); wb.Version = ExcelVersion.Version2010; //獲取第一個(gè)工作簿 Worksheet ws = wb.Worksheets[0]; //在工作薄中加入數(shù)據(jù) ws.Range["A1"].Style.Font.IsBold = true; ws.Range["B1"].Style.Font.IsBold = true; ws.Range["C1"].Style.Font.IsBold = true; ws.Range["A1"].Text = "月份"; ws.Range["A2"].Text = "一月"; ws.Range["A3"].Text = "二月"; ws.Range["A4"].Text = "三月"; ws.Range["A5"].Text = "四月"; ws.Range["B1"].Text = "支出"; ws.Range["B2"].NumberValue = 251; ws.Range["B3"].NumberValue = 515; ws.Range["B4"].NumberValue = 454; ws.Range["B5"].NumberValue = 874; ws.Range["C1"].Text = "自定義DataLabel"; ws.Range["C2"].Text = "自定義DataLabel1"; ws.Range["C3"].Text = "自定義DataLabel2"; ws.Range["C4"].Text = "自定義DataLabel3"; ws.Range["C5"].Text = "自定義DataLabel4"; //設(shè)置表格列寬 ws.SetColumnWidth(3, 20); Chart chart = ws.Charts.Add(ExcelChartType.ColumnClustered); chart.DataRange = ws.Range["A1:B5"]; //指定系列 chart.SeriesDataFromRange = false; chart.PrimaryValueAxis.HasMajorGridLines = false; //設(shè)置圖表的位置 chart.LeftColumn = 4; chart.TopRow = 2; chart.RightColumn = 11; chart.BottomRow = 19; //使用文檔中其他單元格的數(shù)據(jù)自定義datalabel chart.Series[0].DataPoints.DefaultDataPoint.DataLabels.ValueFromCell = ws.Range["C2:C5"]; //為數(shù)據(jù)標(biāo)簽設(shè)置楔形標(biāo)注 chart.Series[0].DataPoints.DefaultDataPoint.DataLabels.HasWedgeCallout = true; //保存文檔到本地并打開 wb.SaveToFile("自定義數(shù)據(jù)標(biāo)簽.xlsx", ExcelVersion.Version2010); System.Diagnostics.Process.Start("自定義數(shù)據(jù)標(biāo)簽.xlsx");
效果圖如下:
更改現(xiàn)有文檔中數(shù)據(jù)標(biāo)簽的設(shè)置
代碼如下:
//加載剛剛得到的文檔 Workbook workbook = new Workbook(); workbook.LoadFromFile("自定義數(shù)據(jù)標(biāo)簽.xlsx"); //獲取第一個(gè)工作表以及表里面的第一個(gè)圖表 Worksheet sheet = workbook.Worksheets[0]; Chart chart = sheet.Charts[0]; //獲取該圖表的第一個(gè)系列 ChartSerie chartSeries = chart.Series[0]; //獲取該系列的第一個(gè)DataPoint的數(shù)據(jù)標(biāo)簽 ChartDataLabels cslabel = chartSeries.DataPoints[0].DataLabels; //修改數(shù)據(jù)標(biāo)簽內(nèi)容并把設(shè)置內(nèi)容文字的字體和顏色 cslabel.Text = "已更改"; cslabel.FontName = "楷體"; cslabel.Color = Color.Red; //設(shè)置顯示圖例項(xiàng)標(biāo)示 cslabel.HasLegendKey = true; //設(shè)置數(shù)據(jù)標(biāo)簽的位置居中 //cslabel.Position = DataLabelPositionType.Center; //自定義數(shù)據(jù)標(biāo)簽的位置,默認(rèn)的原點(diǎn)在圖表左上角 cslabel.IsYMode = true; cslabel.IsXMode = true; cslabel.Y =1200; cslabel.X = 600; //設(shè)置顯示引導(dǎo)線(任意設(shè)置一個(gè)DataPoint會對整個(gè)系列生效, //但是只有自定義數(shù)據(jù)標(biāo)簽位置之后才會顯示效果) cslabel.ShowLeaderLines = true; //取消楔形標(biāo)注(任意設(shè)置一個(gè)DataPoint會對整個(gè)系列生效) cslabel.HasWedgeCallout = false; //保存到本地并打開 workbook.SaveToFile("更改數(shù)據(jù)標(biāo)簽設(shè)置.xlsx"); System.Diagnostics.Process.Start("更改數(shù)據(jù)標(biāo)簽設(shè)置.xlsx");
效果圖如下: