一週間前から,今までVBAで行っていたものを,理由がありVisual Studio 2008を用いて作成しなおしています.
しかし,VB .net自体,完全な初心者で,「独習VisualBasic2008」で勉強しているレベルです.
質問内容はというと,ADOでエクセルファイルのデータを読み込み,DataTableを作成し,DataGridViewで表示するということを行いたいのです.
このような感じで...
cn = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source =" & ExcelFileName & "; Extended Properties = ""Excel 12.0; HDR=NO""")
dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM [Sheet1$]", cn)
dAdp.Fill(dSet, "Table1")
dgv1.DataSource = dSet.Tables("Table1")
ここで,Extended PropertiesのHDRがNOになっていることに注目していただきたいのですが,あとでトランスポーズを行いたいため,このようにしています.
そして読み込むデータはこんな感じです.
文字 文字 文字 文字 文字
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
...
ほんとうはもっと大きいのですが,とりあえず,これをこのまま読み込んでしまうとデータ型が自動的に予測されてしまい(デフォルトでは8行目までスキャンされると書いてありました)データ型が自動的にInt32になってしまいます.
このため,DataTableでは一行目が文字ではなくなってしまい
0 0 0 0 0
と表示されてしまいます.
これをそのまま文字として表示させるにはどのようにすればいいのでしょうか?
一行目だけString
二行目からはDouble
のようにしたいのですが..
そしてトランスポーズ後は,
一列目がString
二列目以降はDouble
というようにしたいんです.
よろしくお願い致します.
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
進展しそうなご様子、何よりです。
VS2008 付属のヘルプか、オンラインなら MSDN ライブラリでどうぞ。
http://msdn.microsoft.com/ja-jp/library/aa139615 …
VS2008 は .NET Framework 3.5 アプリまで利用できますが、.NET Framework 2.0 がベースになります。
2.0 のクラスライブラリリファレンスは下記です。
http://msdn.microsoft.com/ja-jp/library/ms229335 …
それでは頑張ってください。
No.2
- 回答日時:
とりあえず、すべて文字列として読み込んで(Extended Properties に IMEX=1 を指定) DataTable を作成してから、
データ型を定義した DataTable を別途用意して、変換をかけながらデータ移送してはどうでしょうか。
データ型を定義した DataTable は、型付き DataSet としてデザイナで定義するか、以下のようにコーディングします。
Dim dtNew As New DataTable
dt.Columns.Add("Column1", GetType(String))
dt.Columns.Add("Column2", GetType(Double))
尚、読み込みデータの1行目は見出し行ですので、DataTable の中のデータとして持たせるのではなく、上記の Column1, Column2 のように列名として持たせるべきだと思います。つまり、上記は
Dim dt As DataTable = dSet.Tables("Table1")
Dim dtNew As New DataTable
dt.Columns.Add(dt.Rows(0).Item(0), GetType(String))
dt.Columns.Add(dt.Rows(0).Item(1), GetType(Double))
といった感じに書きなおせるかと思います。
edp3142様
ご回答ありがとうございます.
上記アドバイスを元にして,現在うまくいきそうです.重ねて御礼申し上げます.
レベルの低い質問を1つさせてください.
Java APIのように,クラスやメソッドのライブラリーのようなものは,VBにはないのでしょうか?
いまの現状は,やりたいことをgoogleで検索して,さぐりさぐりやっているような状況です.
初心者はこのページを見たらいい!みたいなサイトはありますか?
ちなみに,ぼくはVBAを半年間くらい真剣に勉強して,Excelマクロで出来る範囲のことはすべてできるレベルです(たぶん..).
よろしくお願いします.
No.1
- 回答日時:
根本的に間違ってます。
ADOはデータベースを読み書きするためのもの。
データベースはフィールド毎にデータ型がほぼ決まっている。
エクセルは、全く違います。
ADOではなく、Excel.Application オブジェクトを使いましょう。
お返事ありがとうございます.
読み込むファイル形式はエクセルだけでなく,テキスト形式,CSVと,いろいろあるので,単純にそういうわけにはいかず,少し難しいように感じます.
少し具体的に言いますと,VBのフォームアプリケーションで主成分分析等の多変量解析を行い,その結果をグラフィック表示するようなものを作りたいんです.
なにかアドバイスがありましたら,教えていただけないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- その他(Microsoft Office) wordの差し込み印刷での日付表示 2 2023/08/15 16:51
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
追加クエリで重複データなしで...
-
【VB】セルが空になるまで処理...
-
Excel VBAのユーザーフォームで...
-
VBAでの行数を揃える方法
-
マクロでファイルを読み込み、...
-
csvデータ不要列の削除をbatフ...
-
pandasでsqlite3にテーブル作成...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
エラーを起こす方法
-
truncate tableを使って複数の...
-
UPDATEで既存のレコードに文字...
-
Accessで今日から5日後
-
selectの単純繰り返し
-
timestampのデータはどのように...
-
MySQLで数字の値のもののみを取...
-
sqlに記述できない文字
-
SELECTした結果に行番号を求めたい
-
既存データをINSERT文にして出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
pandasでsqlite3にテーブル作成...
-
csvデータ不要列の削除をbatフ...
-
Excel VBAのユーザーフォームで...
-
【VB】セルが空になるまで処理...
-
ACCESS VBAでSeekメソッドの処...
-
追加クエリで重複データなしで...
-
JDBCを使ってdate型へのINSERT...
-
自作アプリからAPIで他のアプリ...
-
EXCELで外部データの取り込みが...
-
ListBoxにAddItemする際、重複...
-
データテーブルの使い方に関して
-
エクセル 2つの列にある値の完...
-
マクロでファイルを読み込み、...
-
VBAでの行数を揃える方法
-
【ExcelVBA】範囲選択の方法に...
-
一週間前から,今までVBAで行っ...
-
機械語
-
PHPとMYSQL、DBのデータが空の...
-
Accessでパラメーター以外の削...
-
エクセルで去年のデータを今年...
おすすめ情報