Я пытаюсь читать файлы Excel через OpenXML и искать вывод в CSV. В настоящее время он считывает каждую ячейку отдельной строкой (из-за записи) или одной строкой (при использовании записи). Каков наилучший способ чтения и вывода в табличном формате, например, в Excel? Есть ли встроенная функция OpenXML, которую я могу использовать для этого?Чтение файлов Excel с использованием OpenXML
static void Main(string[] args) { String xlDocName = @"C:\Users\xlp111\source.xlsx"; using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(xlDocName, false)) { WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart; string cellValue = string.Empty; foreach(WorksheetPart worksheetPart in workbookPart.WorksheetParts) { OpenXmlReader reader = OpenXmlReader.Create(worksheetPart); while (reader.Read()) { if (reader.ElementType == typeof(Row)) { reader.ReadFirstChild(); do { if (reader.ElementType == typeof(Cell)) { Cell c = (Cell)reader.LoadCurrentElement(); if (c.DataType != null && c.DataType == CellValues.SharedString) { SharedStringItem ssi = workbookPart.SharedStringTablePart.SharedStringTable.Elements<SharedStringItem>().ElementAt(int.Parse(c.CellValue.InnerText)); cellValue = ssi.Text.Text; Console.WriteLine(cellValue); } } } while (reader.ReadNextSibling()); } } } Console.ReadLine(); } } }
Родственный пост [здесь] (https://stackoverflow.com/q/5115257/465053). – RBT