Hallo,
ich möchte XLS/XLSX-Dateien zu CSV konvertieren.
Habe dazu etwas gefunden und es ist relativ gut, aber bei manchen Excel-Dateien, wir die erste Zeile nicht erkannt/ausgelesen.
C# .NET - Convert Excel 2007 (XLSX) to CSV using OLE DB
Da wird alles ausgelesen, außer der 1. Zeile:
//Fill the dataset with information from the Sheet 1 worksheet.
var adapter1 = new OleDbDataAdapter("SELECT * FROM [" + worksheetName + "]", connectionString);
var ds = new DataSet();
adapter1.Fill(ds, "results");
DataTable data = ds.Tables["results"];
//Show all columns
for (int i = 0; i < data.Rows.Count - 1; i++)
{
for (int j = 0; j < data.Columns.Count; j++)
Console.Write("\"" + data.Rows[i].ItemArray[j] + "\";");
Console.WriteLine();
}
Welchen Gedankenfehler habe ich hier drin, den ich übersehe ?
Tschau
Martin
OLE DB ist eine DB-Interface, wenn Excel der Meinung ist, die erste Zeile sind Spalten-Namen, dann gehören die natürlich nicht zu den Daten - so zumindest meine Theorie.
Oder Du liest einfach die Datei selber, wenn dahinter OpenXml steckt, ist das recht einfach.
Mit der offiziellen Implementierung von Microsoft habe ich bisher nur geschrieben (und das war grausig), aber es gibt einen hervorragenden Wrapper namens "ClosedXml".
Mit ClosedXml habe ich bisher auch nur geschrieben, aber das war mMn. super intuitiv und ich war deutlich schneller fertig, als noch beim vorherigen Projekt mit OpenXml.
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Hi,
ich löse das nun mit dem ExcelDataReader:
https://github.com/ExcelDataReader/ExcelDataReader
Tschau
Martin