Gibt es eine Möglichkeit zum Speichern von Änderungen in einer Excel-Tabelle über die Excel-Interop (in diesem Fall bin ich ein Arbeitsblatt hinzufügen), ohne den Benutzer gefragt, ob Sie möchten die vorhandene Datei mit den Änderungen überschreiben. Ich möchte nicht, dass der Benutzer die Tabellenkalkulation in meiner Anwendung öffnet, so dass ein Popup-Fenster angezeigt wird, in dem gefragt wird, ob sie die Datei überschreiben wollen, sie erscheint sehr fehl am Platz und möglicherweise verwirrend für den Benutzer.So speichern/überschreiben Sie vorhandene Excel-Datei mit Excel Interop - C#
Ich verwende die Methode workbook.SaveAs (fileloaction).
Hier initialisiere ich die COM-Referenzobjekte für das Excel-Interop.
private Excel.Application app = null;
private Excel.Workbook workbook = null;
public Excel.Workbook Workbook
{
get { return workbook; }
set { workbook = value; }
}
private Excel.Worksheet worksheet = null;
private Excel.Range workSheet_range = null;
Unten ist der Code, den ich verwende, um die Excel-Datei zu schließen/zu speichern. Die methodbook.close() -Methodelinie ist diejenige, die Berichten zufolge die unbehandelte Ausnahme auslöst.
workbook.Close(true, startForm.excelFileLocation, Missing.Value);
Marshal.ReleaseComObject(app);
app = null;
System.GC.Collect();
es funktionierte fantastisch Dank! Wenn nur jetzt könnte ich einen Weg finden, um es zu schließen, wie Sie oben tun, ohne dass es verursacht, dass meine C# -Anwendung eine nicht behandelte Ausnahme wirft und abstürzt. Ich kann die Anwendung nach dem Speichern und Schließen der Excel-Datei auch nicht schließen. Es muss offen bleiben. – user1546315
Kannst du ein wenig Code posten (oder eine neue Frage mit diesem Code posten, wenn es nicht zu dieser Frage passt) ... Das scheint merkwürdig und ich bin mir sicher, leicht zu reparieren ... –
Ich habe den Beitrag aktualisiert mit etwas Code. Wenn Sie mehr brauchen, lassen Sie es mich wissen. Ich habe bereits mehrere Threads zu diesem Problem gepostet, habe mehrere Lösungen ausprobiert, muss aber die Excel-Arbeitsmappe noch schließen/speichern können, ohne eine unbehandelte Exception zu werfen und die C# -Anwendung abstürzen zu lassen. – user1546315