「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > OLEDBを使用して元の注文でExcelシート名を取得する方法は?

OLEDBを使用して元の注文でExcelシート名を取得する方法は?

2025-02-26に投稿されました
ブラウズ:927

How to Retrieve Excel Sheet Names in Their Original Order Using OLEDB?

Excelワークブックからシート名を取得するタスクは、一般的にプログラミングで遭遇します。ただし、Spreadsheetで定義されている順序でこれらの名前を取得することは、OLEDBを使用する場合に挑戦する可能性があります。 getoledbschematable()は、目的の順序でシート名を提供できません。これにより、シート名またはインデックスに基づいてデータ取得を指定し、混乱につながるユーザーの能力が妨げられます。シート0からシート数から1から1まで。これにより、シートの順序の保存が保証されます。 OLEDB

Office Interopクラスを使用することが実行不可能な場合、OLEDBを使用したソリューションが利用可能です:

///

/// ExcelワークブックからExcelシート名を取得します。 /// /// Excelファイル。 /// string [] private string [] getExcelSheetNames(StringExcelfile) { OLEDBCONNECTION OBJCONN = null; System.Data.Datatable dt = null; 試す { //接続文字列 string connstring = "provider = microsoft.jet.oledb.4.0;" 「データソース= "Excelfile";拡張プロパティ= Excel 8.0; "; //接続を作成し、データベースへの接続を開きます objconn = new oledbconnection(connstring); objconn.open(); //スキーマGUIDを含むデータテーブルを取得します dt = objconn.getoledbscchematable(oledbschemaguid.tables、null); if(dt == null) nullを返します。 // string []を初期化してシート名を保存します。 string [] excelsheets = new String [dt.rows.count]; int i = 0; //文字列配列にシート名を追加します。 foreach(dt.rowsのDatarow Row) { excelsheets [i] = row ["table_name"]。toString(); 私 ; } Excelsheetsを返します。 } キャッチ(例外Ex) { nullを返します。 } ついに { //接続とデータテーブルをクリーンアップします if(objconn!= null) { objconn.close(); objconn.dispose(); } if(dt!= null) { dt.dispose(); } } } このコードはExcelファイルに接続し、シート名を含むデータテーブルを取得し、スプレッドシートに表示される順序でこれらの名前を文字列[]に入力します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3