2015-01-29 2 views
3

Попытка выяснить, как читать все ячейки, даже пустые.Невозможно получить доступ к пустым ячейкам EPPlus

Проблема: Когда ячейка пуста, она игнорируется и вместо нее используется значение из следующей ячейки .. и генерируется исключение.

Это:

Название .......... Номер

автомобиля ............... 10

Box .. ............. 26

..................... 19

Apple ..... ....... 26

Окончание:

Название .......... Номер

автомобиля ............... 10

коробка ........ ...... 26

19 ............. Apple,

26 .................

var ws = excelPackage.Workbook.Worksheets.First(); 

for (var i = 3; i <= ws.Dimension.End.Row; i++) 
    { 
    var cellValues = ws.Cells[i, 1, i, ws.Dimension.End.Column].ToList(); 

var newThings = new Store 
     { 
     Name = cellValues[0].Text, 
     Number = cellValues[1].Text, 
     }; 

Я пробовал такие вещи, как

Name = string.IsNullOrWhiteSpace(cellValues[0].Text) ? " " : cellValues[0].Text; 

, но слишком поздно, так как повреждение уже сделано. Было бы замечательно, если бы эта работа работала, но я не могу понять, как это сделать.

Я бы очень признателен за любую помощь, которую вы можете предоставить. :)

ответ

4

Вы можете попробовать прочитать каждую строку/столбец индивидуально, а не использовать диапазон EPPlus. Аналогично этому (это непроверено):

for (var j = 3; j <= excelSheet.Dimension.End.Row; ++j) 
{ 
    var name = (excelSheet.Cells[j, 0].Value ?? "").ToString(); 
    var number = (excelSheet.Cells[j, 1].Value ?? "").ToString(); 
    var newThings = new Store 
    { 
     Name = name, 
     Number = number 
    }; 
} 
Смежные вопросы