c#の直接excelファイルアクセス:合理化されたアプローチ
データ処理の自動化には、Excelファイルに直接アクセスするための効率的なC#メソッドが必要になることがよくあります。 これは、容易に利用できる、無料、またはオープンソースライブラリを使用して効果的に実現できます。
Microsoft Jet OLEDBプロバイダーを活用しています
Microsoft Jet OLEDBプロバイダーは、強力なソリューションを提供します。 これにより、C#アプリケーションがExcelファイルに接続し、クエリを介してデータを取得できます。 方法は次のとおりですこのコードはExcelファイルに接続し、クエリ(「Sheet1」からすべてのデータを選択する)を実行し、and
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "fileNameHere.xlsx"); //Improved path handling var connectionString = $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={filePath};Extended Properties='Excel 12.0;HDR=YES;';"; //Updated for newer Excel versions and header detection using (var connection = new OleDbConnection(connectionString)) { connection.Open(); using (var command = new OleDbCommand("SELECT * FROM [Sheet1$]", connection)) //Assumes sheet name "Sheet1" { using (var reader = command.ExecuteReader()) { while (reader.Read()) { //Process each row here string columnName1 = reader["ColumnName1"].ToString(); // ... process other columns } } } }
ステートメントを使用した改善されたエラー処理。
OleDbDataReader
using
linq
によるデータ操作 より洗練されたデータ操作の場合、LINQ(言語統合クエリ)は強力なツールセットを提供します。 上記の例ではのデータを直接処理しますが、A
を入力してからlinq:を使用できます。
OleDbDataReader
DataTable
このlinqクエリは、電話番号との接触のためにフィルターをフィルターし、それらをカスタム
// ... (previous code to populate a DataTable named 'dataTable') ... var contacts = dataTable.AsEnumerable() .Where(row => !string.IsNullOrEmpty(row.Field<string>("phoneNumber"))) .Select(row => new MyContact { FirstName = row.Field<string>("FirstName"), LastName = row.Field<string>("LastName"), PhoneNumber = row.Field<string>("phoneNumber") });
以上が外部ライブラリなしでC#でExcelファイルを直接効率的に読み取り、操作するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。