Próbuję zmodyfikować i zapisać dane w programie Excel. Za pomocą poniższego kodu uzyskuję dostęp do arkusza, wykonuję modyfikacje, a następnie zapisuję plik. Nie mogę zapisać pliku. Tu jest mój kodu:Nie można zapisać pliku Excel przy użyciu 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();
Otrzymuję ten błąd: „plik o nazwie«BookExcel1.xlsx»już istnieje w tym miejscu Czy chcesz go zastąpić?”
Więc zmieniłem kod do:
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););
Następnie błąd brzmi: „BookExcel1.xlsx jest modyfikowana przez user_name.open jako tylko do odczytu”. Jeśli I kliknij „Anuluj”, otrzymuję wyjątek powyżej z „wyjątek od HRESULT: 0x800A03EC”
Próbowałem również:
wb.SaveAs(@"C:\Users\dnyanesh.wagh\Desktop\BookExcel1.xlsx");
wb.Close(true,null,null);
Od że otrzymuję ten sam błąd, z powyższego pliku pokazano modyfikacje.
Czy ktoś może mi powiedzieć, w jaki sposób mogę zapisać plik z modyfikacjami?
Don” t naprawdę wiesz, ale tylko szybka myśl ... czy jesteś pewien, że można używać tej samej ścieżki pliku z 'SaveAs'? Zwykle tworzy to nowy dokument. Czy istnieje funkcja 'Save()', której można użyć? – musefan
Nie należy go pokazywać. –
Nie widzę, żebyś zwalniał obiekty COM utworzone. Pamiętaj, aby zawsze zwolnić każdy pojedynczy obiekt Excel, który utworzysz/wykorzystasz. Jeśli pojawi się błąd i nie zamykamy skoroszytu, to może pozostać otwarte, więc tylko do odczytu dla nowych instancji ... Więcej: Excel nie jest zamknięty (używając 'excel.Quit()'), dzięki czemu można mieć wiele procesów Excel w pamięci ... – Marco