Forum » Programiranje » c# Excel Interop problem
c# Excel Interop problem
PecenkA ::
Trenutno uporabljam za izvoz v xls naslednjo kodo:
Zdaj bi pa želel, da Excelova aplikacija ostane odprta. To sem rešil z app.Visible = true, in odstranitvijo app.Quit() metode. Pojavi pa se problem, ko zaprem Excel ročno proces EXCEL.EXE še vedno teče v ozdaju dokler ne zaprem celotne aplikacije. Kaj mi je storiti?
Microsoft.Office.Interop.Excel.Application app = null; Microsoft.Office.Interop.Excel.Workbook wb = null; Microsoft.Office.Interop.Excel.Worksheet ws = null; try { app = new Microsoft.Office.Interop.Excel.Application(); wb = app.Workbooks.Add(1); ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets[1]; //Tle potem podatke filam gor //..... //Tle shranim podatke v datoteko s SaveAs metodo //..... } catch (Exception e) { MessageBox.Show("Napaka pri izvozu. " + e.ToString()); } finally { app.Quit(); }
Zdaj bi pa želel, da Excelova aplikacija ostane odprta. To sem rešil z app.Visible = true, in odstranitvijo app.Quit() metode. Pojavi pa se problem, ko zaprem Excel ročno proces EXCEL.EXE še vedno teče v ozdaju dokler ne zaprem celotne aplikacije. Kaj mi je storiti?
FlashM ::
Huh... Goog question... Načeloma bi se moral proces samodejno končat... Kater Excel pa uporabljaš (2003 ali 2007)? Zdele iz glave ti težko kaj svetujem, sam pomoje bi mogu met en handle, ki bi končal excelov proces ko se zapre okno excela... Pojma nimam...
PecenkA ::
Uporabljam tako 2003 (na developer mašini) kot 2007 (kjer se program uporablja). Če na hitro razmislim o handlih lahko zelo hitro dobim handle na način x = app.Hwnd potem pa na Excelov event WorkbookBeforeClose killam proces. Bom poskusil, pa sporočim.
Zgodovina sprememb…
- spremenil: PecenkA ()
FlashM ::
Kaj pravzaprav pa želiš naredit? Sem mal na netu pogooglu in našel precej zanimivih načinov branja in pisanja Excel fajlov.
Link: stackoverflow.com/questions/151005/create-excel-xls-and-xlsx-file-from-c
Link: stackoverflow.com/questions/151005/create-excel-xls-and-xlsx-file-from-c
Zgodovina sprememb…
- spremenil: FlashM ()
PecenkA ::
Ne rabim samo pisat datoteke (itak glede tega nikoli ni bilo problema), ampak mora imeti uporabnik takoj podatke tudi odprte v Excelu, brez da bi datoteko prej že shranilo. Naredil sem tudi Crystal report, ki se ga da itak v Excel izvozit, ampak želje so pač želje).
FlashM ::
Aha, ok... :-) stekam.
Nimam nobene ideje...
Če ne bi bil pogoj da datoteka še ne sme bit shranjena, potem bi lahko uporabil
System.Diagnostic.Process.Start(parameters)
in mu za parametre podaš excel datoteko.
Sicer pa jst na tvojem mestu ne bi kompliciral z uporabo Crystal Reportov...
Nimam nobene ideje...
Če ne bi bil pogoj da datoteka še ne sme bit shranjena, potem bi lahko uporabil
System.Diagnostic.Process.Start(parameters)
in mu za parametre podaš excel datoteko.
Sicer pa jst na tvojem mestu ne bi kompliciral z uporabo Crystal Reportov...
Zgodovina sprememb…
- spremenil: FlashM ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Spletni bralnik excel dokumentovOddelek: Programiranje | 2721 (2289) | b3D_950 |
» | VB.net Excel v TifOddelek: Programiranje | 1141 (1040) | saule |
» | VISUAL BASIC - Makro v wordu - prenos podatkov iz tabel v excelOddelek: Programiranje | 2879 (2741) | FlashM |
» | Vnos podatkov v Excell in uporaba le teh v WorduOddelek: Programska oprema | 1484 (1404) | Go-ahead |
» | Visual Basic in ExcelOddelek: Programiranje | 2670 (2236) | Vesoljc |