DataSet にデータを読み取り、後で DataGridView で表示するために、OLE 関連の API を使用しています。ソースはエクセルファイルです。最初の行または列が空の場合、その行または列はスキップされます。データが空であるかデータがあるかに関係なく、データを読み取りたいです。空の場合でも他の行/列は正常に機能しますが、開始のみが欠落しています。
ColumnHeader について読んで、connectionString (HDR=NO) などを変更しようとしましたが、何もうまくいきませんでした。
API の呼び出し中に指定する必要がある追加事項はありますか? この最初の空白行/列をスキップするため、Excel 列と DataGridView 列との 1 対 1 のマッピングが失われます。
この OleDbDataAdapter パラメーターに何かを追加/変更する必要があります。実際にデータを読み取り、データセットに入力します。
OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter(
"select * from [" + worksheetName + "$]", con);
はい、必要な情報を設定し、各シートからデータを読み取るメソッドを呼び出しています。行/列を読み取る以外のアクションは実行していません。
OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString);
System.Data.DataTable getWorksheetData(OleDbConnection con, OleDbDataAdapter cmd)
{
con.Open();
System.Data.DataSet excelDataSet = new DataSet();
cmd.Fill(excelDataSet);
con.Close();
return excelDataSet.Tables[0];
}
私の接続文字列は次のとおりです。
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
fileName + "; Extended Properties=\"Excel 12.0 Xml;HDR=NO;Mode=Read;ReadOnly=True;\"";