Jet.Oledbを使用してExcelファイルをデータテーブルにインポートしようとしています。これが私のコードです:
string sourceConstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + HttpContext.Current.Server.MapPath("~/" + fileName) + "';Extended Properties='Excel 8.0;HDR=No;IMEX=1'";
OleDbConnection con = new OleDbConnection(sourceConstr);
OleDbCommand oleDbCmd = new OleDbCommand();
con.Open();
oleDbCmd.Connection = con;
DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string firstExcelSheetName=dt.Rows[0][2].ToString();
string query = "select * from [" + firstExcelSheetName + "]";
OleDbDataAdapter data = new OleDbDataAdapter(query, con);
data.TableMappings.Add("Table", "dtExcel");
data.Fill(dtExcel);
Excelファイルでは、最初の行に列名があります。しかし、私のデータテーブルは列名として(f1、f2、f3、...)を取得し、Excelファイルの最初の行を最初の行として取得しています。したがって、最初の行にcolumnNameが含まれていることを伝えなければならないことが推測できます。しかし、どうすればそれを実現できますか?