EPPlus NuGet-Paket schlägt stillschweigend bei .Save() fehlC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 EPPlus NuGet-Paket schlägt stillschweigend bei .Save() fehl

Post by Anonymous »

Ich bin neu im Programmieren und beim Erstellen einer kleinen Konsolen-App mit C# in Visual Studio. Als Teil des App-Prozesses kopiert es eine Excel-Dateivorlage und speichert Kopien in drei verschiedenen Dateipfaden (unter Verwendung des EPPlus-Pakets aus der NuGet-Bibliothek). Anschließend erfolgt eine Datenverarbeitung, nach der die Daten aus jeder der erstellten Tabellenkalkulationskopien gelöscht werden. Zwei der drei Löschmethoden funktionieren einwandfrei, die letzte Methode, die im Wesentlichen der gleichen Logik wie die ersten beiden folgt, schlägt jedoch beim .Save() immer wieder stillschweigend fehl. Die App wird nicht mehr ausgeführt, ohne dass die Methode jemals wieder auf „main“ zurückgesetzt wird. Im folgenden Codeausschnitt sehen Sie, dass ich WriteLines rund um den Speicher hinzugefügt habe, damit ich bestätigen kann, dass er den Speicher erreicht und tatsächlich „about to save“ in die Konsole schreibt, aber vor dem Erreichen von „saved“ fehlschlägt.
Ich habe buchstäblich Stunden damit verbracht, das jetzt herauszufinden. Copilot hat einen Unterschied in der Struktur des Arbeitsblatts vorgeschlagen, es gibt jedoch keine benannten Bereiche, Tabellen, zusammengeführten Zellen oder formatierten Zellen, die den gelöschten Bereich beeinträchtigen Zeilen.
Es gibt auch keine Fehlermeldungen, und ich habe einen Try-Catch ausprobiert, um explizit jede Ausnahmemeldung zu schreiben, aber auch dort keine Ergebnisse.
Ich habe auch versucht, „Phantomformeln“ aus der Excel-Tabelle zu entfernen.
Ich habe auch versucht, Zeilen auf eine andere Art und Weise zu entfernen, indem ich die Zeilennummer in einer Liste gespeichert habe und dann die Zeilen außerhalb der Schleife entfernt habe – immer noch kein Erfolg.
Laut den Recherchen, die ich durchgeführt habe Bisher glaube ich, dass dies etwas mit EPPlus zu tun hat und nicht mit dem Code selbst.
Ich verwende EPPlus 8.4.1
BEARBEITEN: Zusätzliche Informationen: Die Zeilen wurden erfolgreich aus der Tabelle gelöscht, es scheint also, dass es funktioniert, aber das Programm wird immer noch vorzeitig beendet.

Code: Select all

public static void FilterErrorData()
{
// ascertain target Excel.
var files = Directory.GetFiles(FileManager.errorOutputPath);
var file = files[0];

using (ExcelPackage package = new ExcelPackage(new FileInfo(file)))
{
ExcelWorksheet ws = package.Workbook.Worksheets["Sheet1"];

// starting at the end of the worksheet, iterate through until row 13 (first data row).
for (int row = ws.Dimension.End.Row; row >= 13; row--)
{
string a = ws.Cells[row, 2].Value?.ToString().Trim() ?? "";
string b = ws.Cells[row, 9].Value?.ToString().Trim() ?? "";
ab currentab = new ab(a, b);

if (!Errors.ContainsKey(ab))
{
ws.DeleteRow(row);
}
else
{
// Retreieve error message from dictionary.
string DataIssue = Errors[ab];
ws.Cells[row, 26].Value = DataIssue;
}
}

Console.WriteLine("About to save");
package.Save();
Console.WriteLine("Saved");

}
}
Beispiel für eine der anderen Methoden, die gut funktioniert:

Code: Select all

public static void FilterDataBelowThreshold()
{
// ascertain target Excel.
var files = Directory.GetFiles(FileManager.unprocessedOutputPath);
var file = files[0];

Dictionary ToKeep = new    Dictionary();

foreach (var pair in FileManager.abLimits)
{
if (pair.Value < FileManager.threshold)
{
ToKeep.Add(pair.Key, pair.Value);
}
}

using (ExcelPackage package = new ExcelPackage(new FileInfo(file)))
{
ExcelWorksheet ws = package.Workbook.Worksheets["Sheet1"];

// starting at the end of the worksheet, iterate through until row 13 (first data row).
for (int row = ws.Dimension.End.Row; row >= 13; row--)
{
string a = ws.Cells[row, 2].Value?.ToString().Trim() ?? "";
string b = ws.Cells[row, 9].Value?.ToString().Trim() ?? "";
ab currentab = new ab(a, b);

if (!ToKeep.ContainsKey(currentab))
{
ws.DeleteRow(row);
}
}
package.Save();
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post