0

エクセルシートからセルを取得しています。これが出力です。

Cell A2 has value 113,295
Cell B2 has value 540
Cell C2 has value 41,044
Cell A3 has value 192,653
Cell B3 has value 510
Cell C3 has value 41,037

コード:

using (ExcelPackage package = new ExcelPackage(existingFile))
{
    ExcelWorksheet sheet = package.Workbook.Worksheets[1];

    //Select all cells in column d between 9990 and 10000
    var query1 = (from cell in sheet.Cells["A2:C2"] select cell);

    int count = 0;
    string[] s = null;

    foreach (var cell in query1)
        Console.WriteLine("Cell {0} has value {1:N0}", cell.Address, cell.Value);
}

私の問題は、メンバーa、b、cでクラスを作成し、List<>にこれらのオブジェクトのコレクションを保持させたいということです。

現在、反復していますが、forループのA、B、Cのいずれのセルかわかりません。

4

1 に答える 1

0

Partition メソッドを記述して、行の長さを指定できます...あなたの場合は 3

IEnumerable<List<T>> Partition<T>(IEnumerable<T> col, int partitionSize) {
 if (col.Count() == 0) {
  return new List<List<T>>();
 } else {
  var l = new List<List<T>>();
  l.Add(col.Take(partitionSize).ToList());
  return l.Concat(Partition(col.Skip(partitionSize), partitionSize));
 }
}

class TheClass {
 public int A, B, C;
}

return Partition(sheet.Cells["A2:C2"], 3)
         .Select(cells => new TheClass { 
           A = int.Parse(cells[0].Value),
           B = int.Parse(cells[1].Value),
           C = int.Parse(cells[2].Value)
         });

これが役立つことを願っています

于 2012-07-10T21:08:47.553 に答える