Я использую OpenXML, чтобы открыть электронную таблицу и пройтись по строкам электронной таблицы.У меня есть запрос linq, который возвращает все ячейки в строке.Запрос linq был скопирован прямо с демоверсии MSDN.
IEnumerable<String> textValues =
from cell in row.Descendants<Cell>()
where cell.CellValue != null
select (cell.DataType != null
&& cell.DataType.HasValue
&& cell.DataType == CellValues.SharedString
? sharedString.ChildElements[int.Parse(cell.CellValue.InnerText)].InnerText
: cell.CellValue.InnerText);
Запрос linq отлично подходит для возврата всех ячеек, у которых есть значение, , но он не возвращает ячейки, у которых нет значения .Это, в свою очередь, делает невозможным определить, какая клетка есть какая.Позвольте мне объяснить немного больше.Скажем, например, у нас есть три столбца в нашей электронной таблице: имя, SSN и адрес.Этот запрос linq работает так, что он возвращает только те ячейки, которые имеют значение для данной строки.Таким образом, если в строке данных есть «Джон», «», «173 Сикамор», то запрос linq возвращает только «Джон» и «173 Сикамор» в перечислении, что, в свою очередь, не позволяет мне узнать,«173 Платан» - это поле SSN или адрес.
Позвольте мне повторить здесь: мне нужно, чтобы были возвращены все ячейки, а не только ячейки, содержащие значение .
Я пытался обезьяназапрос linq во всех отношениях, о которых я только мог подумать, но мне не повезло (т. е. удаление предложения where - не уловка).Любая помощь будет оценена.Спасибо!