- using Spire.Xls;
- using Spire.Xls.Charts;
- using System.Drawing;
- namespace ChartWithMultiLevelCategoryLabels_XLS
- {
- class Program
- {
- static void Main(string[] args)
- {
- //创建Workbook实例,获取工作表
- Workbook wb = new Workbook();
- Worksheet sheet = wb.Worksheets[0];
- //写入数据到工作表
- sheet.Range["A2"].Text = "出口前";
- sheet.Range["A5"].Text = "出口后";
- sheet.Range["B1"].Text = "年份";
- sheet.Range["B2"].Text = "2017年";
- sheet.Range["B6"].Text = "2018年";
- sheet.Range["C1"].Text = "季度";
- sheet.Range["C2"].Text = "1季度";
- sheet.Range["C3"].Text = "2季度";
- sheet.Range["C4"].Text = "3季度";
- sheet.Range["C5"].Text = "4季度";
- sheet.Range["C6"].Text = "1季度";
- sheet.Range["C7"].Text = "2季度";
- sheet.Range["C8"].Text = "3季度";
- sheet.Range["C9"].Text = "4季度";
- sheet.Range["D1"].Text = "季度产量\n(万吨)";
- sheet.Range["D2"].Value = "1.56";
- sheet.Range["D3"].Value = "2.3";
- sheet.Range["D4"].Value = "3.21";
- sheet.Range["D5"].Value = "3.5";
- sheet.Range["D6"].Value = "4.8";
- sheet.Range["D7"].Value = "5.2";
- sheet.Range["D8"].Value = "5.79";
- sheet.Range["D9"].Value = "5.58";
-
- //合并单元格,设置单元格对齐方式
- sheet.Range["A2:A4"].Merge();
- sheet.Range["A5:A9"].Merge();
- sheet.Range["B2:B5"].Merge();
- sheet.Range["B6:B9"].Merge();
- sheet.Range["A1:D9"].Style.HorizontalAlignment = HorizontalAlignType.Center;
- sheet.Range["A1:D9"].Style.VerticalAlignment = VerticalAlignType.Center;
- //添加柱状图表
- Chart chart = sheet.Charts.Add(ExcelChartType.LineMarkers);
- chart.ChartTitle = "季度产量(万吨)";//设置图表标题
- chart.PlotArea.Fill.FillType = ShapeFillType.NoFill; //不填充绘图区域(默认填充灰色)
- chart.Legend.Delete();//删除图例
- //指定柱状图表在工作表中的位置及宽度
- chart.LeftColumn = 5;
- chart.TopRow = 1;
- chart.RightColumn = 14;
- //设置图表系列数据来源
- chart.DataRange = sheet.Range["D2:D9"];
- chart.SeriesDataFromRange = false;
- chart.Series[0].DataPoints.DefaultDataPoint.DataLabels.HasValue = true;
- chart.Series[0].Format.LineProperties.Color = Color.BlueViolet;
- //设置系列分类标签数据来源
- ChartSerie serie = chart.Series[0];
- serie.CategoryLabels = sheet.Range["A2:C9"];
- //显示多层分类标签
- chart.PrimaryCategoryAxis.MultiLevelLable = true;
- //保存文档
- wb.SaveToFile("output.xlsx", ExcelVersion.Version2013);
- System.Diagnostics.Process.Start("output.xlsx");
- }
- }
- }