MS Chartでは、いろいろな種類のグラフが表示できます。が、しかし、エクセル程融通が利くかといえば利かないところもあるでしょう。
プロジェクトによっては、グラフはエクセルで見ることにしたほうが良いかもしれません。でも、将来、MS Chartの機能が充実していくことによってこれを使用する場面も
多々出てくるかもしれません。
ここでは、簡単ではありますがMS Chartの基本的なことをやってみるソースを示したいと思います。
.Net Framework 3.5用のMS Chartをインストールするにはこちらからです。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; //MS Chartで必要なアセンブリの参照 using System.Windows.Forms.DataVisualization.Charting; namespace ChartTest { public partial class Form1 : Form { DataSet ds = new DataSet(); //MS Chartの本体 Chart chart1 = new Chart(); public Form1() { InitializeComponent(); //チャートに表示するグラフのデータの取得 SqlConnectionStringBuilder bldr = new SqlConnectionStringBuilder(); bldr.DataSource = @".\SQLExpress"; bldr.InitialCatalog = "pubs"; bldr.IntegratedSecurity = true; SqlConnection conn = new SqlConnection(); conn.ConnectionString = bldr.ConnectionString; SqlCommand cmd = new SqlCommand(); cmd.CommandText = "SELECT SUM(qty) AS Quantity,CONVERT(VARCHAR, YEAR(ord_date)) + '/' + CONVERT(VARCHAR,MONTH(ord_date))+'/' +CONVERT(VARCHAR, DAY(ord_date)) AS SalesDate FROM sales GROUP BY ord_date ORDER BY SalesDate"; cmd.Connection = conn; SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = cmd; sda.Fill(ds); //チャートで使用するデータソースの設定 chart1.DataSource = ds.Tables[0]; //グラフを表示する領域のインスタンス生成 chart1.ChartAreas.Add(new ChartArea("Sales")); //グラフのことをSeriesと呼ぶ chart1.Series.Add(new Series("Until 2000")); //グラフを表示する領域を設定 chart1.Series["Until 2000"].ChartArea = "Sales"; //グラフを呼び出すのにインデックスでも可能。 //X軸の値のカラム名を設定する chart1.Series[0].XValueMember = "SalesDate"; //X軸の値のデータタイプを設定 chart1.Series[0].XValueType = ChartValueType.Date; //同じくY軸についても設定 chart1.Series[0].YValueMembers = "Quantity"; chart1.Series[0].YValueType = ChartValueType.Int32; //グラフの種類を設定。ここでは棒グラフ chart1.Series[0].ChartType = SeriesChartType.Column; this.Controls.Add(this.chart1); chart1.Dock = DockStyle.Fill; } } }