Lesen von Excel-Dateien mithilfe von OpenXML

Ich versuche zu Lesen von Excel-Dateien via OpenXML und sucht die Ausgabe in eine CSV-Datei. Derzeit liest es jede Zelle in einer separaten Zeile (aufgrund writeline) oder einer einzigen Zeile (wenn mit write). Was ist der beste Weg, um zu Lesen und bestens in einem tabellarischen format wie in Excel? Gibt es eine eingebaute Funktion in OpenXML, die ich nutzen kann?

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();
        }
    }
}
Related post hier.

InformationsquelleAutor user793468 | 2016-07-25

Schreibe einen Kommentar