OLEDBを使用してExcelファイルの読み込みについて
- 題名: OLEDBを使用してExcelファイルの読み込みについて
- 著者: じゅで
- 日時: 2009/03/27 16:10:50
- ID: 24286
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: OLEDBを使用してExcelファイルの読み込みについて
- 著者: オショウ
- 日時: 2009/03/28 21:29:52
- ID: 24290
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: OLEDBを使用してExcelファイルの読み込みについて
- 著者: オショウ
- 日時: 2009/03/28 21:32:32
- ID: 24291
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: OLEDBを使用してExcelファイルの読み込みについて
- 著者: じゅで
- 日時: 2009/03/30 12:15:25
- ID: 24300
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: OLEDBを使用してExcelファイルの読み込みについて
- 著者: オショウ
- 日時: 2009/03/30 13:43:41
- ID: 24303
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: OLEDBを使用してExcelファイルの読み込みについて
- 著者: じゅで
- 日時: 2009/03/30 15:37:01
- ID: 24305
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
いつもお世話になっております。
今回質問させていただいたのは、題名にある、OLEDBを使用して、
Excelを読み込む際に、
DataTableのDataColumnのDataTypeを指定できないかというです。
今現在行っている方法は、かなり強引で、以下の通りとなります。
1.型付DataTableをSQL Serverの定義に合わせて定義をしておく。
カラム名などもSQL Serverの定義に合わせておく。
2.Excelファイルを一度OLEDBを使用して、読みこむ。
その際、Columの名称を全て取得し、型付DataTableのカラム名を一時的に
変更する。
これは、項目名が不明な為です。
順番として、項目の並び順のみ、DataTableの定義と同一という形式になっています。
3.読み込んだDataTableを破棄し、カラム名をExcelシート側の項目名に合わせて、
型定義を行っているもので、再度Fillする。
4.取得しなおした、DataTableに対して、順次カラム名を元のSQL Server側の
カラム名に変更する。
もともと項目名だけ合わせてあげれば、Mergeできると思っていましたが、
DataTypeの事を忘れていて、どうしたものかと手詰まりです。
上以外の方法でも、型付DataTable側のDataTypeで、Convert.ChangeTypeで
変換してしまおうかとも思いましたが、なんだかすっきりしません。
もし、読み込み時にカラムの型を指定する方法があれば、
教えて頂けないでしょうか。
実行環境:Windows XP Pro SP2 / Excel 2003
開発環境:Windows Vista Ultimate SP1 / Excel 2007 / .NET Framework 2.0
開発環境と実行環境が違うのは、諸事情の為です。
当然、Windows XPとExcel2003で開発すれば?というのはありますが、
この件については、大人の事情と、下っ端プログラマ(私)の事情です。
# カラム名称を固定で、型付DataTableに設定して、
# Fillすれば、うまいこといくんですが、肝心のカラム名が。
# どうにもならなければ、最悪固定してしまうというのも考え中。