linQ选择接受空值的excel文件的所有行

时间:2011-10-26 10:27:49

标签: c# asp.net linq

使用LinQ和openXML阅读excel 2007是很好的工作:

IEnumerable<String> textValues =
                                    from cell in row.Descendants<Cell>()
                                    where cell.CellValue != null
                                    select
                                        (cell.DataType != null
                                        && cell.DataType.HasValue
                                        && cell.DataType == CellValues.SharedString
                                        ? sharedStrings.ChildElements[
                                        int.Parse(cell.CellValue.InnerText)].InnerText
                                        : cell.CellValue.InnerText)
                                    ;

但是,如果我的一个单元格为空(空白)。然后它们被排除在textValues之外。如何更改查询以选择包含空白值的所有单元格,我已经尝试过此查询:

from cell in row.Descendants<Cell>()
select cell.CellValue.ToString();

但是我收到了这个错误:

Object reference not set to an instance of an object.

如何选择查询?

提前致谢。

1 个答案:

答案 0 :(得分:1)

尝试:

from cell in row.Descendants<Cell>()
select Convert.ToString(cell.CellValue);

cell.CellValuenull,您在调用ToString()时会收到异常。