» »

c# Excel Interop problem

c# Excel Interop problem

PecenkA ::

Trenutno uporabljam za izvoz v xls naslednjo kodo:

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 ::

Sporoči če ti bo ratalo. Jst sem imel podobne težave z Accessom.

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

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...

Zgodovina sprememb…

  • spremenil: FlashM ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Spletni bralnik excel dokumentov

Oddelek: Programiranje
242721 (2289) b3D_950
»

VB.net Excel v Tif

Oddelek: Programiranje
121141 (1040) saule
»

VISUAL BASIC - Makro v wordu - prenos podatkov iz tabel v excel

Oddelek: Programiranje
52879 (2741) FlashM
»

Vnos podatkov v Excell in uporaba le teh v Wordu

Oddelek: Programska oprema
51484 (1404) Go-ahead
»

Visual Basic in Excel

Oddelek: Programiranje
262670 (2236) Vesoljc

Več podobnih tem