Я создал небольшую программу на C# для получения файла CSV, изменения данных, разделения некоторых позиций, а также добавления дополнительных столбцов данных. Эта последняя часть приводит к ошибкам при запуске.
Error: Header with name 'Payee_Country'[0] was not found. Header with name 'Payer_Address1'[0] was not found. Header with name 'Payer_Address2'[0] was not found. Header with name 'Payer_City'[0] was not found. Header with name 'Payer_State' [0] was not found. Header with name 'Payer_Zip'[0] was not found. Header with name 'Payer_Country'[0] was not found.
Следующий код — это то, что у меня есть на данный момент, например, значения, использованные выше, ранее не существовали во входном файле CSV, и я не уверен, как получить это работает, так как я пробовал отображать, но это приводило к большему количеству ошибок.
Я создал небольшую программу на C# для получения файла CSV, изменения данных, разделения некоторых позиций, а также добавления дополнительных столбцов данных. Эта последняя часть приводит к ошибкам при запуске. [code]Error: Header with name 'Payee_Country'[0] was not found. Header with name 'Payer_Address1'[0] was not found. Header with name 'Payer_Address2'[0] was not found. Header with name 'Payer_City'[0] was not found. Header with name 'Payer_State' [0] was not found. Header with name 'Payer_Zip'[0] was not found. Header with name 'Payer_Country'[0] was not found.[/code] Следующий код — это то, что у меня есть на данный момент, например, значения, использованные выше, ранее не существовали во входном файле CSV, и я не уверен, как получить это работает, так как я пробовал отображать, но это приводило к большему количеству ошибок. [code] public class CsvRecord { public string GLAccountName { get; set; } public string BankRoutingNumber { get; set; } public string BankAccountNumber { get; set; } public DateOnly FileDate { get; set; } public string Amount { get; set; } public string InvoiceNumbers { get; set; } public string InvoiceDates { get; set; } public string InvoiceAmounts { get; set; } public string InvoiceTotals { get; set; } public string InvoiceDescriptions { get; set; } public string CheckNumber { get; set; } public string VendorID { get; set; } public string VendorName { get; set; } public string VendorAddressLine1 { get; set; } public string VendorAddressLine2 { get; set; } public string VendorCity { get; set; } public string VendorState { get; set; } public string VendorZip { get; set; } public string Payee_Country { get; set; } public string VendorEmail { get; set; } public string Payer_Address1 { get; set; } public string Payer_Address2 { get; set; } public string Payer_City { get; set; } public string Payer_State { get; set; } public string Payer_Zip { get; set; } public string Payer_Country { get; set; } }
if (!string.IsNullOrEmpty(FilePathTextBox.Text)) { try { // Read the CSV file List records;
using (var reader = new StreamReader(FilePathTextBox.Text)) using (var csv = new CsvReader(reader, new CsvConfiguration(CultureInfo.InvariantCulture))) { records = csv.GetRecords().ToList(); }
// Create a new list to store the modified records List modifiedRecords = new List();
// Split records containing pipes
foreach (var record in records) {
var invoiceAmountsArray = record.InvoiceAmounts.Split('|'); var invoiceTotalsArray = record.InvoiceTotals.Split('|'); var invoiceNumbersArray = record.InvoiceNumbers.Split('|'); var invoiceDatesArray = record.InvoiceDates.Split('|'); var invoiceDescriptionsArray = record.InvoiceDescriptions.Split('|');
// Ensure the arrays have the same length int itemCount = Math.Min(invoiceAmountsArray.Length, invoiceTotalsArray.Length);
// Add the new record to the list modifiedRecords.Add(newRecord); } }
// Perform your edits on the 'records' list here
foreach (var record in modifiedRecords) { if (!string.IsNullOrWhiteSpace(record.CheckNumber) && !record.CheckNumber.All(char.IsDigit)) { record.CheckNumber = ""; }
// Save the modified CSV file to the desktop var desktopPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop); var outputPath = System.IO.Path.Combine(desktopPath, "Fixed_IP.csv");
using (var writer = new StreamWriter(outputPath)) using (var csv = new CsvWriter(writer, new CsvConfiguration(CultureInfo.InvariantCulture) { HasHeaderRecord = false })) { csv.WriteRecords(modifiedRecords); }