试图弄清楚如何读取所有细胞,甚至是空细胞。
问题: 当一个单元格为空时,它将被忽略,并使用下一个单元格中的值代替..并抛出异常。
此:
名称..........编号
汽车............... 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;
但由于损坏已经完成,为时已晚。 让这件事起作用会很棒,但我似乎无法理解。
我非常感谢您提供的任何帮助。 :)
答案 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
};
}