C# と MVVM モデルを使用して Excel アプリケーションを作成しました。そのExcelファイルで、テンプレート列としていくつかの列を作成しました。たとえば、Unit、Cost、Quantityなどの列があります。ここで、「 Quantity 」の正確な列番号を見つけたいと思います。
その特定の列(数量)番号を取得するにはどうすればよいですか?
これを達成する方法を教えてください。
Selectステートメントを実行し、データセットに入力します。次に、テーブル内の列をトラバースして、列「数量」のインデックスを見つけます。
データセットにExcelファイルをロードするためのサンプルコード:
public static DataSet exceldata(string filelocation){
DataSet ds = new DataSet();
OleDbCommand excelCommand = new OleDbCommand(); OleDbDataAdapter excelDataAdapter = new OleDbDataAdapter();
string excelConnStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + filelocation + "; Extended Properties =Excel 8.0;Hdr=Yes";
OleDbConnection excelConn = new OleDbConnection(excelConnStr);
excelConn.Open();
DataTable dtPatterns = new DataTable(); excelCommand = new OleDbCommand("SELECT `PATTERN` as PATTERN, `PLAN` as PLAN FROM [PATTERNS$] where 1=0", excelConn);
excelDataAdapter.SelectCommand = excelCommand;
excelDataAdapter.Fill(dtPatterns);
"dtPatterns.TableName = Patterns";
ds.Tables.Add(dtPatterns);
return ds;
}
このメソッドを使用することにより、データセットにテーブルスキーマをロードしました。これで、任意のコレクション変数に列名とインデックスを格納し、そのコレクションのキー列名を使用して列インデックスを取得できます。