EPPlus - не удается найти столбец 10
У меня есть приложение, где пользователь загружает файл 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, которое принимает в качестве второго аргумента индекс столбца.
1 ответ
Вы уверены, что исключение сделано из "worksheet.Cells[i, j].Value", а не из "newRow[j - 1]"? Ваш счетчик цикла "j" равен 11, но исключение указывает "Не удается найти столбец 10", который соответствует индексатору "[j-1]" в вашем newRow.