无法访问空单元EPPlus

时间:2015-01-29 15:18:06

标签: c# excel 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;

但由于损坏已经完成,为时已晚。 让这件事起作用会很棒,但我似乎无法理解。

我非常感谢您提供的任何帮助。 :)

1 个答案:

答案 0 :(得分:6)

您可以尝试单独读取每行/每列,而不是使用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
    };
}