- - PR -
OleDbによるExcelファイルのシート名取得について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-07-04 20:16
言語はC#です。
Excelファイルのシート名の取得方法について、 MSDNの記事を参考にしていますが、 解決できない点があるので、質問させてください。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfS ----------------------- // DataTableを取得 public DataTable GetTables(OleDbConnection conn) { conn.Open(); DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] {null, null, null, "TABLE"}); conn.Close(); return schemaTable; } // シート名を取得 foreach(DataRow row in schemaTable.Rows) { string strSheetTableName = row["TABLE_NAME"].ToString(); } ----------------------- 上記方式でシート名を取得すると、余分なシート名(?)を取得してしまいます。 ・Excelファイルによっては(現状違いが分かりません)、 存在するシート名以外に、“シート名$”($が付与されている)というシート名を取得する。 ・範囲の名前(挿入→名前→定義で追加)が定義されていると、この名称も取得する。 これらの余分なシート名(?)を取得しなくなるような指定方法はありますでしょうか。 OleDbSchemaGuid.TablesフィールドのTABLE_TYPEの指定を変えても効果はありませんでした。 (“TABLE”の指定を変更すると、実在するシート名も取得できなかった) http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdataoledboledbschemaguidclasstablestopic.asp 以上、よろしくお願いします。 |
|
投稿日時: 2005-07-04 20:18
自己レスです。
1つ目のアドレスが間違っていました。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemDataOleDbOleDbConnectionClassGetOleDbSchemaTableTopic.asp |
1