###C#で簡単な家計簿を作っています。
CSVを読み込ませて、系列毎に集計させてグラフ表示させたいのですが、方法が分かりません。
###該当のソースコード
using System; using System.Windows.Forms; using System.IO; using System.Windows.Forms.DataVisualization.Charting; using System.Data.OleDb; using System.Data; using System.Drawing; private void graph_chart_display() { chart1.Series[0].Name= "電気代"; chart1.Series.Add("水道代"); chart1.Series.Add("雑費"); string current = Directory.GetCurrentDirectory(); // Full path to the data source file string path = current +"\"; // Create a connection string. string ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + " " + path + ";Extended Properties=\"Text;HDR=No;FMT=Delimited\""; OleDbConnection myConnection = new OleDbConnection(ConStr); // Create a database command on the connection using query string mySelectQuery = "Select * from"+ "\sample.csv" ; OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection); // Open the connection and create the reader myCommand.Connection.Open(); OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); chart1.Series[0].Color = ColorTranslator.FromHtml("#0033FF"); chart1.ChartAreas[0].InnerPlotPosition.Width = 90; chart1.ChartAreas[0].InnerPlotPosition.Height = 90; chart1.ChartAreas[0].InnerPlotPosition.X = 8; chart1.ChartAreas[0].InnerPlotPosition.Y = 0; chart1.ChartAreas[0].AxisX.Title = "支出"; chart1.ChartAreas[0].IsSameFontSizeForAllAxes = true; chart1.Series[0].Points.DataBindXY(myReader, "2", myReader, "0"); // Close connection and data reader myReader.Close(); myConnection.Close(); } }
###出力
https://pbs.twimg.com/media/CqxCaAoWgAEJJON.jpg:large
ここで、電気代、水道代といった個別の集計を出したい。
・水道代は水色の棒グラフ
・雑費はオレンジ色 といった感じです。
単純なサンプルのcsvを同梱してますが
66,電気代,8月26日
666,電気代,8月26日
666,電気代,8月26日
123,電気代,8月26日
123,水道代,8月26日
432,水道代,8月26日
423,雑費,8月26日
432,雑費,8月26日
としています。
###試したこと
単純に検索しても、とっかかりらしきモノが全く見つかりません。要するに「何をすればいいか」わかりません。
3年前から全く進まずに悩んでいます。
とにかく的確な回答を望みます。
試しに
66,電気代
666,電気代
666,電気代
123,電気代
123,水道代
432,水道代
423,雑費
432,雑費
としました。
結果
回答3件
あなたの回答
tips
プレビュー