7

すでに解決策を見つけようとしましたが、問題に一致するものは何も見つかりませんでした。JXL を使用して Excel スプレッドシートを読み取り、各行を指定されたオブジェクトに変換しています。行内の各セルは、作成中のオブジェクトのプロパティに対応しています。私のスプレッドシートには 41 列あり、375 行を読み取った後、1 行あたりのセル数が 41 から 32 に変わりました。理由がわかりません。

行をループしてセルを取得するコードは次のとおりです。

  w = Workbook.getWorkbook(inputWorkbook);
  // Get the first sheet
  Sheet sheet = w.getSheet(0);
  // Loop over first 10 column and lines

  for (int row=1; row < sheet.getRows();row++)
  {
      EventData event = new EventData();
      // we skip first row bc that should be header info
      //now iterate through columns in row
      try
      {
          Cell[] cell = sheet.getRow(row);

          event.Name = cell[0].getContents();
          event.Location = cell[1].getContents();

コードの残りの部分は、引き続き各セルの内容を取得し、それに応じて割り当てます。しかし、行 376 の cell[32] にアクセスしようとすると、範囲外の例外が発生します。

4

2 に答える 2

3

その行の cell[32] の後のすべてが空であるため、配列内の cell[32] (およびそれ以上) がまったく作成されないだけではないでしょうか? jxlから始めたばかりで、それが私が見ているものだと思います

于 2012-11-29T14:58:24.220 に答える