第十一章:图表与可视化

11.1 创建图表

using unvell.ReoGrid.Chart;
using unvell.ReoGrid.Graphics;

public class ChartCreation
{
    public void CreateColumnChart(Worksheet sheet)
    {
        // 创建柱状图:B2:C10 为数值区,A2:A10 为行标题,B1:C1 为列标题
        var chart = new ColumnChart
        {
            Location = new Point(360, 20),
            Size = new Size(360, 220),
            Title = "销售数据",
            DataSource = new WorksheetChartDataSource(
                sheet, sheet.Ranges["A2:A10"], sheet.Ranges["B2:C10"])
            {
                CategoryNameRange = sheet.Ranges["B1:C1"],
            },
        };
        sheet.FloatingObjects.Add(chart);
    }
    
    public void CreateLineChart(Worksheet sheet)
    {
        // 创建折线图:B2:B20 为数值区,A2:A20 为行标题
        var chart = new LineChart
        {
            Location = new Point(360, 20),
            Size = new Size(360, 220),
            DataSource = new WorksheetChartDataSource(
                sheet, sheet.Ranges["A2:A20"], sheet.Ranges["B2:B20"]),
        };
        sheet.FloatingObjects.Add(chart);
    }
    
    public void CreatePieChart(Worksheet sheet)
    {
        // 创建饼图:B2:B5 为数值区,A2:A5 为分类名
        var chart = new PieChart
        {
            Location = new Point(360, 20),
            Size = new Size(360, 220),
            DataSource = new WorksheetChartDataSource(
                sheet, sheet.Ranges["A2:A5"], sheet.Ranges["B2:B5"]),
        };
        sheet.FloatingObjects.Add(chart);
    }
}

11.2 图表配置

public class ChartConfiguration
{
    public void ConfigureChart(Chart chart)
    {
        // 设置标题
        chart.Title = "月度销售趋势";
        chart.TitleFont = new Font("微软雅黑", 14, FontStyle.Bold);
        
        // 设置图例
        chart.Legend.Visible = true;
        chart.Legend.Position = LegendPosition.Right;
        
        // 设置坐标轴
        chart.PrimaryAxisX.Title = "月份";
        chart.PrimaryAxisY.Title = "销售额(万元)";
    }
}

11.3 本章小结

本章介绍了图表创建和配置功能。

📚 下一章预告

第十二章将学习Excel文件导入导出。