Bir excel elektronik tablosundaki değişiklikleri excel interop yoluyla kaydetmenin bir yolu var (bu durumda buna bir çalışma sayfası ekliyorum). Mevcut dosyayı değişikliklerle üzerine yazmak istiyorlar. Kullanıcının e-tabloyu uygulamada açık olarak görmesini bile istemiyorum, böylece dosyanın üzerine yazmak isteyip istemediklerini soran bir ileti kutusuyla karşılaşmanız çok muhtemeldir ve muhtemelen kullanıcı için kafa karıştırıcı olabilir.Excel Interop ile varolan Excel dosyasını Kaydetme/Üzerine Yazma - C#
Çalışma kitabını kullanıyorum.SaveAs (fileloaction) yöntemi.
Burada excel interop için COM başvuru nesnelerini başlatıyorum.
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;
Excel dosyasını kapatmak/kaydetmek için kullanıyorum kod aşağıdadır. Workbook.close() yöntem satırı, bildirilmeyen bir şekilde işlenmeyen özel durumu atar.
ExcelApp.DisplayAlerts = False
ExcelWorkbook.Close(SaveChanges:=True, Filename:=CurDir & FileToSave)
Umut bu sadece bu kod durdurmak için gerektir olacak
Müthiş sayesinde! Eğer şimdi sadece yukarıda yaptığım gibi kapatmak için bir yol bulabilirsem C# uygulamamın işlenmemiş bir istisna ve çarpışma atmasına sebep olur. Excel dosyasını kaydedip kapattıktan sonra uygulamayı kapatamıyorum. Açık kalması gerekiyor. – user1546315
Biraz kod gönderebilir misiniz (veya bu soruna uymuyorsa bu kodla yeni bir soru gönderebilirsiniz) ... Bu garip ve eminim ki, kolayca düzeltilebilir ... –
Gönderiyi güncelledim bazı kod ile. Daha fazlasına ihtiyacın olursa haberim olsun. Bu sorun hakkında birden çok ileti dizisi gönderdim, birkaç çözüm denedim ancak henüz excel çalışma kitabını işlenmemiş bir istisna atmadan ve C# uygulamasını çökertmeden kaydetme/kaydetme şansına sahip oldum. – user1546315