ユーザーがExcel(2007以降)ファイルをアップロードし、このファイルが解析され、コンテンツがデータベースに保存されるアプリケーションがあります。EPPlusを使用してExcelからコンテンツを読んでいます。これがコードスニペットです
foreach (var worksheet in package.Workbook.Worksheets)
{
for (int i = worksheet.Dimension.Start.Row + 1; i <= worksheet.Dimension.End.Row; i++)
{
DataRow newRow = dt.NewRow();
for (int j = worksheet.Dimension.Start.Column; j <= worksheet.Dimension.End.Column; j++)
{
newRow[j - 1] = worksheet.Cells[i, j].Value;
}
dt.Rows.Add(newRow);
}
}
jの値が11に達すると、次の例外が発生しました。列10が見つかりません。しかし、ファイルをチェックしました。実際には列インデックス10があります。ブレークポイントを設定し、列9の値を監視しました。これは、列10の前の値とまったく同じです。
だから誰でも私を助けることができますか?本当に問題は何ですか?
APIを確認しましたが、EPPlus libには実際にはインデックスプロパティCellsがあり、これは2番目の引数として列のインデックスを受け入れます。