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

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

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

Re[1]: エクセルレコードを配列へ格納


(過去ログ 63 を表示中)

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

■36696 / inTopicNo.1)  エクセルレコードを配列へ格納
  
□投稿者/ よっくん (1回)-(2009/06/03(Wed) 23:56:33)

分類:[C#] 

asp.net ver3.0 C#学習です

エクセルファイルの中身で
1 2 3 4 5
6 7 8 9 10
それぞれセルとして10個のセルです
エクセルの行をループさせて
一行目読み込み時に配列に1,2,3,4,5を格納(hairetu[0] は1)
となるようにしてまわしていきたいんですけど
どのようにしたらいいのかが分かりませんでした。

行数は最大6万あります。
二行目に行く際はまたhairetuを上書きでいれていくだけでいいです

よろしくお願いいたします
引用返信 編集キー/
■36700 / inTopicNo.2)  Re[1]: エクセルレコードを配列へ格納
□投稿者/ オショウ (211回)-(2009/06/04(Thu) 03:24:38)
No36696 (よっくん さん) に返信
> asp.net ver3.0 C#学習です
>
> 行数は最大6万あります。
> 二行目に行く際はまたhairetuを上書きでいれていくだけでいいです

  まずは、どうやってエクセルファイルからデータを読み出すか・・・

  http://blog.so-net.ne.jp/jem/2009-03-07
  http://www.cocoaliz.com/asp.net/index/40/

  OleDb使って、データベースを扱うようにエクセルからレコード(行)
  として読み出せます。
  カラムはフィールドにあたりますし、行はレコードです。

  因みに、ASP.NETと言うことは、エクセルファイルをサーバーにアップ
  ロードしてサーバーサイドで読んで・・・違うDBにでも保存するの
  でしょうか?

  ASP.NETではなく、まずはWinFormででも読み出す機能を作ってテスト
  し、後に・・・と思いますが。

以上。参考まで
引用返信 編集キー/
■36704 / inTopicNo.3)  Re[2]: エクセルレコードを配列へ格納
□投稿者/ よっくん (4回)-(2009/06/04(Thu) 08:18:32)
http://www2.pf-x.net/~rafysta/memo/wiki.cgi?page=C%23%A4%CB%A4%E8%A4%EBExcel%A4%CE%C1%E0%BA%EE%CE%E3
を参照しエクセルにアクセスしています
セルの値を見ること、セルに値をいれることまではできる状態になりました。
どう一行を配列に入れ込むかがわかりません
よろしくお願いいたします
引用返信 編集キー/
■36707 / inTopicNo.4)  Re[1]: エクセルレコードを配列へ格納
□投稿者/ 魔界の仮面弁士 (1119回)-(2009/06/04(Thu) 09:55:41)
2009/06/04(Thu) 09:58:44 編集(投稿者)

No36696 (よっくん さん) に返信
> asp.net ver3.0 C#学習です
次回質問時には、投稿時の分類を「C#」ではなく「ASP.NET (C#)」にしておいてください。


No36704 (よっくん さん) に返信
> http://www2.pf-x.net/~rafysta/memo/wiki.cgi?page=C%23%A4%CB%A4%E8%A4%EBExcel%A4%CE%C1%E0%BA%EE%CE%E3
> を参照しエクセルにアクセスしています
その方法は、ASP.NET では使用しないでください。
サーバーサイドでの Office オートメーションは、多数の問題が発生する可能性があると報告されています。
http://support.microsoft.com/default.aspx/kb/257757/ja


サーバーサイドでの Excel 読み込みに対応したコンポーネントを利用することをおすすめします。
http://www.adv.co.jp/products.htm
http://www.xlsoft.com/jp/products/SSG/product.html

# SharePoint なら、こんなのもあるのですけれども。
# http://msdn.microsoft.com/ja-jp/library/ms546696.aspx


可能であれば、Excel ファイル(*.xls, *.xlsx)を使うのではなく、
タブ区切りテキスト、CSV ファイル、XML ファイル等を使うことも検討してみてください。
引用返信 編集キー/
■36709 / inTopicNo.5)  Re[3]: エクセルレコードを配列へ格納
□投稿者/ .SHO (850回)-(2009/06/04(Thu) 10:04:10)
> セルの値を見ること、セルに値をいれることまではできる状態になりました。

その出来たところまでを掲載してもらえると答えやすいです。

引用返信 編集キー/
■36730 / inTopicNo.6)  Re[1]: エクセルレコードを配列へ格納
□投稿者/ mitchin (3回)-(2009/06/04(Thu) 14:52:23)
No36696 (よっくん さん) に返信
> 二行目に行く際はまたhairetuを上書きでいれていくだけでいいです

地道にやるとしたらこんな感じかなぁ。
コードはVBですが

With DirectCast(ThisWorkbook.ActiveSheet, Excel.Worksheet).Range("A1").CurrentRegion 'アクティブシートのセルA1のセル領域
 Dim hairetu(.Columns.Count - 1) As Double
 Dim idx As Integer
 For Row As Integer = 1 To .Rows.Count
  Dim RowData As Array = DirectCast(DirectCast(.Rows.Item(Row), Excel.Range).Value, Array)
  For Each ColumnData As Double In RowData
   hairetu(idx) = ColumnData
   idx += 1
  Next
 Next
End With

hairetu と ColumnData は適切なデータ型にしてください。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -