使用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.
如何选择查询?
提前致谢。
答案 0 :(得分:1)
尝试:
from cell in row.Descendants<Cell>()
select Convert.ToString(cell.CellValue);
cell.CellValue
为null
,您在调用ToString()
时会收到异常。