Имам приложение, в което потребителят качва excel (2007 или по-нова версия) файл, този файл се анализира и съдържанието се съхранява в базата данни. Чета съдържание от Excel с помощта на EPPlus. Ето кодовия фрагмент
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, което приема като втори аргумент индекса на колона.