Я использую OpenXML, чтобы открыть электронную таблицу и прокрутить строки таблицы. У меня есть запрос linq, который возвращает все ячейки внутри строки. Запрос linq был разорван прямо из демонстрации на MSDN.OpenXML linq query
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-запрос, он возвращает только те ячейки, которые имеют значение для данной строки. Поэтому, если есть строка данных, которая имеет «John», «», «173 Sycamore», тогда запрос linq возвращает только «John» и «173 Sycamore» в перечислении, что, в свою очередь, делает невозможным узнать, «173 Sycamore» - это SSN или поле «Адрес».
Позвольте мне повторить здесь: Мне нужно, чтобы все ячейки возвращались, а не только ячейки, которые содержат значение.
Я пытался обезвредить запрос linq во всех отношениях, о которых я мог думать, но мне не повезло вообще (т. Е. Удаление предложения where не трюк). Любая помощь будет оценена по достоинству. Благодаря!
Я использовал ClosedXML для экспорта таблиц Excel, но я не думал, что он вообще импортировал. Имеет ли это? Сегодня я даже выглядел очень эффектно сегодня на своем веб-сайте и не видел, чтобы это было (хотя это был очень быстрый взгляд). Однако я посмотрю на EPPlus. На самом деле, каждый раз, когда я пытаюсь что-то делать с OpenXML, я поражен тем, что, казалось бы, должно быть простым, заканчивается чем-то другим! – Jagd
Если при импорте вы имеете в виду способность читать и писать данные, тогда OpenXML и EPPlus могут это сделать. Я согласен с тем, что попытка сделать что-либо прямо с OpenXML - это боль в королевстве, но с такими инструментами, как те, что указаны выше, и Document Explorer как часть SDK, его soooooo намного лучше, чем предыдущий COM Interop, с которым нам приходилось иметь дело! – jklemmack
ClosedXML работал отлично. Хотелось бы, чтобы я использовал его только с первого, а не с помощью OpenXML. Еще раз спасибо! – Jagd