C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: ADO.NET EXCELのシートを途中の行から読み込みたい


(過去ログ 83 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■49666 / inTopicNo.1)  ADO.NET EXCELのシートを途中の行から読み込みたい
  
□投稿者/ KEn (1回)-(2010/05/12(Wed) 16:50:16)

分類:[VB.NET/VB2005 以降] 

2010/05/12(Wed) 16:58:30 編集(投稿者)

【VB2005+Excel2003】

いつもお世話になります。

ADO.NETでEXCELファイルを読み込みデータテーブルに格納したいのですが、
1行目からデータが始まってなく、4行目にヘッダを表す文字が、5行目以降にデータが記述されています。

<追記>
普通にこのまま読み込むと、DataTableの1行目から3行目に不要な行が取り込まれ、4行目に項目名の行、
5行目以降にデータが格納されます。
やりたいことは、DataTableの項目名はExcelの4行目、5行目からRowに格納させたいのです。
</追記>

この場合、ADO.NETを使ってシートを読み込む際、指定した行以降を読み込むなどということはできるのでしょうか?
それとも、一旦EXCELを加工(3行目までを消して保存)したものを読み込まなければならないのでしょうか。

よろしくお願い致します。

【EXCELの中身】

1行目:あああ
2行目:いいい
3行目:
4行目:項目1  項目2  項目3 ・・・
5行目:AAAAA  BBBBB  CCCCC
6行目:BBBBB  CCCCC  AAAAA
 ・
 ・
 ・



引用返信 編集キー/
■49668 / inTopicNo.2)  Re[1]: ADO.NET EXCELのシートを途中の行から読み込みたい
□投稿者/ はつね (1265回)-(2010/05/12(Wed) 17:21:14)
No49666 (KEn さん) に返信
> <追記>
> 普通にこのまま読み込むと、DataTableの1行目から3行目に不要な行が取り込まれ、4行目に項目名の行、
> 5行目以降にデータが格納されます。
> やりたいことは、DataTableの項目名はExcelの4行目、5行目からRowに格納させたいのです。
> </追記>

(1)全体をDataTableに読み込む
(2)4行目の内容でColumns(index)の内容を変更
(3)4行目、3行目、2行目、1行目をDataTableから削除


> この場合、ADO.NETを使ってシートを読み込む際、指定した行以降を読み込むなどということはできるのでしょうか?

できません。


> それとも、一旦EXCELを加工(3行目までを消して保存)したものを読み込まなければならないのでしょうか。

それが可能ならばそれでも良いと思います。

引用返信 編集キー/
■49669 / inTopicNo.3)  Re[2]: ADO.NET EXCELのシートを途中の行から読み込みたい
□投稿者/ もりお (219回)-(2010/05/12(Wed) 17:36:03)
No49668 (はつね さん) に返信
>>この場合、ADO.NETを使ってシートを読み込む際、指定した行以降を読み込むなどということはできるのでしょうか?
> 
> できません。

ODBC な Driver だとこんな感じの CommandText で範囲を指定できるかと思います。
SELECT `項目1`, `項目2`, `項目3` FROM `Sheet1$A4:C10`

引用返信 編集キー/
■49700 / inTopicNo.4)  Re[3]: ADO.NET EXCELのシートを途中の行から読み込みたい
□投稿者/ KEn (2回)-(2010/05/13(Thu) 14:44:43)
> もりお さん
> はつね さん

ありがとうございます。

FROM `Sheet1$A4:C10` で指定範囲内のみを取得できました。

しかし、今回、項目名が書かれている行位置が固定ではなく、最大行数も可変であるため、
FROM `Sheet1$A4:C10`とするには、まずEXCELファイルを開いて中身を走査することになるため、
今回は、はつね さんにアドバイスいただいた方法で、項目列が含まれる行を特定し、それ以前を削除するという方法で行いたいと思います。

ありがとうございました。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -