У меня есть приложение, в котором пользователь загружает файл 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 действительно есть свойство индекса Cells, которое принимает в качестве второго аргумента индекс столбца.