Ich benutze CsvHelper. Um in eine .csv
Datei zu schreiben, brauche ich einen Header, der auf einer Klasse basiert.Schreiben einer Kopfzeile mit CsvHelper? C#
Ich schreibe den Header manuell und es funktioniert, aber ich muss automatisch gemacht werden, wenn es gelesen wird.
Die gesamte Dokumentation, die ich finden kann, besagt, diesen Ausdruck zu verwenden, writer.WriteHeader<CSVDataFormat>();
, aber das funktioniert nicht, weil es mehr Arbeit benötigt, um es zu erledigen. Hier
ist die Klasse, die Header basieren sollte sich aus:
public class CSVDataFormat
{
public string FirstName { get; set; }
public string LastName { get; set; }
public float Wage { get; set; }
}
Hier ist der Code für das Lesen und Schreiben:
private void ReadCSV(string ogCsvFile)
{
using (var streamReaederfileDir = new StreamReader(@ogCsvFile))
{
using (var streamWriterFileDir = new StreamWriter(Path.Combine(Path.GetDirectoryName(ogCsvFile), "New" + Path.GetFileName(ogCsvFile))))
{
var reader = new CsvReader(streamReaederfileDir);
var writer = new CsvWriter(streamWriterFileDir);
writer.WriteHeader<CSVDataFormat>();
IEnumerable records = reader.GetRecords<CSVDataFormat>().ToList();
foreach (CSVDataFormat record in records)
{
record.Wage = record.Wage + (record.Wage/10);
writer.WriteField(record.FirstName);
writer.WriteField(record.LastName);
writer.WriteField(record.Wage);
writer.NextRecord();
}
}
}
}
aktualisieren
Dies ist Fehler, den ich erhalte, wenn ich meinen Code starte:
Eine nicht behandelte Ausnahme des Typs ‚CsvHelper.CsvMissingFieldException‘ aufgetreten in CsvHelper.dll
Zusätzliche Informationen: Felder ‚Vorname‘ existiert nicht in der CSV-Datei.
definieren Was brauchen Sie in der Kopfzeile getan? Ich kann nicht sehen, wo Sie überhaupt eine schreiben – Plutonix
@Plutonix Ich aktualisierte meinen Code, wo ich den Ausdruck verwenden. – Smithy
@Plutonix Der 'writer.WriteHeader();' soll die 'get & set' -Funktionen aus der CSVDataFormat-Klasse erhalten und deren Namen und Datentypen am Anfang der CSV-Datei hinzufügen. Dieser Header ist für CsvHelper erforderlich. –
Smithy