Excelを扱う
先日の日記のようにCOMやMicrosoft.Office.Interop.Excelを使えば良いのですが、解放処理が面倒だったりします。もし、Excelを使う用途がデータの読み書きだけならADO.NETでやってしまうのも一つの手です。
using System; using System.Data; using System.Data.Odbc; class Program { static void Main (string[] args) { string connstr = "Driver={Microsoft Excel Driver (*.xls)}; ReadOnly=False;" + @"DBQ=c:\home\book.xls"; OdbcConnection conn = new OdbcConnection (connstr); conn.Open (); IDbCommand cmd = conn.CreateCommand (); cmd.Connection = conn; // シートの作成 cmd.CommandText = "CREATE TABLE [USERS](Name char(255), Age number)"; cmd.ExecuteNonQuery (); // 行を追加 cmd.CommandText = "INSERT INTO [USERS$](Name, Age) VALUES('太郎', 20)"; cmd.ExecuteNonQuery (); cmd.CommandText = "INSERT INTO [USERS$](Name, Age) VALUES('花子', 18)"; cmd.ExecuteNonQuery (); // 読み取り cmd.CommandText = "SELECT * FROM [USERS$]"; IDataReader reader = cmd.ExecuteReader (); while (reader.Read ()) Console.WriteLine ("{0},{1}",reader[0],reader[1]); reader.Close (); conn.Close (); } } /* 結果 太郎,20 花子,18 */
ってな感じで。