2015-01-29 3 views
3

빈 셀이라도 모든 셀을 읽는 방법을 찾으려고합니다.빈 셀에 액세스 할 수 없습니다. EPPlus

문제점 : 셀이 비어 있으면 무시되고 다음 셀의 값이 대신 사용되며 예외가 발생합니다.

이 :

이름 .......... 번호

자동차 ............... 10

상자 .. ............. 26

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

사과 ..... ....... 26

최종 사용자 :

이름 .......... 번호

자동차 ............... 10

상자 ........ ...... 26

19 ............. 애플

(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 
    }; 
} 
관련 문제