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.

Другие вопросы по тегам