Ich versuche, Daten in Excel zu ändern und zu speichern. Mit dem folgenden Code greife ich auf das Blatt zu, führe Änderungen durch und speichere die Datei. Ich kann die Datei nicht speichern. Hier ist mein Code:Kann nicht speichern Excel-Datei mit C#
Application excel = new Application();
excel.Visible=true;
Workbook wb = (Workbook)excel.Workbooks.Open(@"C:\Users\dnyanesh.wagh\Desktop\BookExcel1.xlsx");
Worksheet ws = (Worksheet)wb.Worksheets[1];
ws.Cells[1, 1] = "sagar";
ws.Cells[2, 1] = "sagar";
ws.Cells[3, 1] = "sagar";
wb.Save();
wb.close();
Ich erhalte diese Fehlermeldung: „Die Datei mit dem Namen‚BookExcel1.xlsx‘existiert bereits in diesem Ort Haben Sie es ersetzen?“
Also änderte ich den Code zu:
Workbook wb = (Workbook)excel.Workbooks.Open(@"C:\Users\dnyanesh.wagh\Desktop\BookExcel1.xlsx",0, false, 5, "", "",
false, XlPlatform.xlWindows, "", true, false,
0, true, false, false););
Dann Fehler ist: "BookExcel1.xlsx von user_name.open geändert wird als nur lesen". Wenn ich auf die Schaltfläche ‚Abbrechen‘, erhalte ich die Ausnahme oben mit „Ausnahme von HRESULT: 0x800A03EC“
Ich habe auch versucht:
wb.SaveAs(@"C:\Users\dnyanesh.wagh\Desktop\BookExcel1.xlsx");
wb.Close(true,null,null);
Von dass ich den gleichen Fehler erhalten, mit der obigen Datei zeigt die Änderungen.
Kann mir jemand sagen, wie kann ich die Datei mit Änderungen speichern?
Don‘ Ich weiß wirklich, aber nur einen kurzen Gedanken ... bist du sicher, dass es in Ordnung ist, den gleichen Dateipfad mit 'SaveAs' zu verwenden? Normalerweise erstellt dies ein neues Dokument. Gibt es stattdessen eine 'Save()' Funktion? – musefan
Machen Sie es nicht sichtbar. –
Ich sehe nicht, dass Sie die erstellten COM-Objekte freigeben. Vergessen Sie nicht, jedes einzelne Excel-Objekt, das Sie erstellen/verwenden, freizugeben. Wenn Sie eine Fehlermeldung erhalten und die Arbeitsmappe nicht schließen, kann diese geöffnet bleiben, also nur für neue Instanzen. Mehr: Excel ist nicht geschlossen (mit 'excel.Quit()'), so dass Sie viele Excel-Prozesse haben können im speicher ... – Marco