2016-05-19 22 views
0

私はC#の初心者です。Excelファイルからすべての行を読み込んで、C#で配列やその他のデータストレージに格納する単純なプログラムを作成しようとしていますが、私はこのデータを操作することができます。C#多くの行を含むExcelファイルを読み込む

大規模なExcelファイル(約200,000行)で、C#でこれを行うにはどのような方法が最適ですか?

Excelファイルから行ごとに移動し、C#のDataSetにコピーしてから、ループを使用してDataSetを操作しますか?

あなたが指摘できる良い例がありますか?

はあなたに

+2

'Interop.Office.Excel'ライブラリを使用して行ごとに読み込みたい場合があります。 'Range'について学ぶ – Ian

+1

EPPlusのオープンソース・ライブラリーを見て、あなたの要件に合っているかどうかを調べます。 interopよりも使用する方がはるかに良いです。 –

+0

新しいライブラリをインポートせずにそれを行う方法はありますか? standart C#libsを使っているだけですか? –

答えて

0

使用Microsoft.Office.Interop.Excelに感謝し、あなたがassembley参照として追加することができ、私は、Microsoft Officeのコアの下のをbeleieve、それは次のようになりエクセル

と例は非常に良いですこのような何か:

Excelのパス

 Excel.Workbook workbook = app.Workbooks.Open(@"yourfilepathandname.xls") 

     int rCount = XLRangeTable.Rows.Count; 
     int cCount = XLRangeTable.Columns.Count; 


     object[,] Table = XLRangeTable.Value2; 

     for (int i = 1; i <= cCount; i++) 
     { 
      T.Columns.Add((string)Table[1, i]); 
     } 
     for (int j = 2; j <= rCount; j++) 
     { 
      DataRow R = T.NewRow(); 
      for (int i = 1; i <= cCount; i++) 
      { 
       R[i - 1] = Table[j, i]; 
      } 
      T.Rows.Add(R); 

楽しんでください!

+0

素早く答えてくれてありがとう、いくつかのメモ:「アセンブリーリファレンスとして使用する」とはどういう意味ですか?あなたが与えたコードでは、私が取り組んでいるxlファイルはどこにありますか? –

+0

プロジェクトの「参照の追加」を前述のアセンブリに適用すると、その参照は明確になります。 「ファイルを開く」機能があり、そこから行/列を含むシートを取得できるはずです。 – Neil

+0

私のお詫びには、Excelブックを次のように宣言する必要があります:Excel.Workbook workbook = app.Workbooks.Open(@ "yourfilepathandname.xls"); – Nonagon

関連する問題