1

Excel を DataTable にインポートしています。Excel ファイルには、データを含む 50x7 セルが含まれています。問題は、データが最初の 50 行にあるにもかかわらず、Fill() メソッドが 368(?) 行をインポートすることです。何が問題なのですか?

インポートには OleDbDataAdapter を使用しています。

 connectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties=Excel 8.0;";
 string  commandString = "select * from [" + worksheetName + "]";
 OleDbDataAdapter adapter = new OleDbDataAdapter(commandString, connectionString);
 DataTable fileTable = new DataTable();
 adapter.Fill(fileTable);
4

1 に答える 1

1

から空のセルを削除するには、これを試してくださいDataTable:

adapter.Fill(fileTable);
fileTable = fileTable.AsEnumerable()
           .Where(row => !row.ItemArray.All(f => f is System.DBNull || String.IsNullOrWhiteSpace(f.ToString())))
           .CopyToDataTable();

シート内の空の行も削除されることに注意してください。

于 2012-04-10T11:59:56.390 に答える