ASP.netで、エクセルデータの取り込みました。
(言語はC#かVB)
手順としては、
(1)取り込むエクセルブックのスキーマ情報を得る。
(2)スキーマ情報からシート名を取得
(3)シート名から、そのシートの情報(セルの値)を、.netのコントロール「データグリッド」に表示
・・・という手順で、うまくいった!と思ったのですが・・・。エクセルのセルの型が「標準」か「文字列」以外のセルの値(数値とか日付型)の部分だけがすっぽり抜けてしまいます。
数値型や日付型のエクセルのセルの値情報を取得するのは無理なのでしょうか?どなたか教えてください。
No.1ベストアンサー
- 回答日時:
>ASP.netで、エクセルデータの取り込みました。
どのような方法で?
この回答への補足
todo36さんお返事ありがとうございます!
一番肝心な説明が無かったですね(^^;)
以下のロジックはC#ですが、VB.netでも同じ結果でした。
private void Page_Load(objectsender,System.EventArgs e)
{
string sConnStr= "(コネクションストリング)"; Source=D:DATA.xls;Extended Properties=Excel8.0;";
OleDbConnection objConn = new OleDbConnection(sConnStr);
objConn.Open();
//スキーマ情報をデータテーブルに格納する
DataTable tbl = new DataTable();
tbl = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables_Info,new Object[] {null,null,null,"TABLE"});
DataGrid1.DataSource = tbl;
DataGrid1.DataBind();
//データテーブルからシート名(テーブル名)を取り出す
name = tbl.Rows[0]["TABLE_NAME"].ToString();
objConn.Close();
//ワークシートからデータを表示する
OleDbCommand cmdSelect = new OleDbCommand("select * from [" + name + "]",objConn);
OleDbDataAdapter ad = new OleDbDataAdapter();
ad.SelectCommand = cmdSelect;
DataSet ds = new DataSet();
ad.Fill(ds,"XLData");
DataGrid2.DataSource = ds.Tables["XLData"].DefaultView;
DataGrid2.DataBind();
objConn.Close();
}
*この時、グリッド1には「スキーマ情報」が、
グリッド2には、テーブルの情報(シートの情報)が表示されるのですが、エクセルのシート上で、セルの書式が「標準・文字列」以外のものは、null値が入って消えてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) セルの値からファイルを複数作りたい 2 2022/10/06 12:42
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Excel(エクセル) エクセルの数式について ブック内の別シートの値の含まれたセルの個数を集計したい 全シート一覧のシート 1 2022/07/21 19:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA ユーザーフォーム ボタンク...
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
Excel vbaで特定の文字以外が入...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
”戻り値”が変化したときに、マ...
-
Excelのプルダウンで2列分の情...
-
特定の文字を条件に行挿入とそ...
-
DataGridViewの各セル幅を自由...
-
EXCELで変数をペーストしたい
-
【VBA】カーソルのある行の1行...
-
【Excel】指定したセルの名前で...
-
連続する複数のセル値がすべて0...
-
VBAの計算で@が出てしまう件
-
Application.Matchで特定行の検索
-
Excelのハイパーリンクにマクロ...
-
VBAを使用した時間管理
-
DataGridViewのセル編集完了後...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
DataGridViewの各セル幅を自由...
-
Sub 要具ライフ() ActiveSheet....
-
【EXCEL VBA】Range("A:A").Fi...
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
おすすめ情報