74 messaggi dal 05 maggio 2005
Ciao a tutti ho il seguente problema:
vorrei attraverso una applicazione web riempire un file xls e poi fare in modo che l'utente possa fare il download di tale file.
Ho visto che per una applicazione winform posso usare la libreria
COM microsoft excel che mi permette di riempire le celle.
Ho importato tale libreria in un progetto web, mi viene riempito il file excel e con un Response viene mandato all'utente che lo ha richiesto. L'unico problema è che guardando nel taskManager del server mi rimane appesa al'applicazione EXCEL.exe e non si chiude neanche arrestando il programma web, devo terminarla da taskManager.

Come posso fare?

Ho escluso di usare le oledb per scrivere in excel perche non mi mantiene il formatto delle celle prestabilito.

Grazie

cin
Hai provato a fare il .Dispose() del tuo oggetto?
74 messaggi dal 05 maggio 2005
viene aperto excel.exe ne task manager all'istruzione

Dim xlsApp As Excel.Application
xlsApp = New Excel.Application

e se alla fine metto xlsApp.dispose mi da il seguente errore:

Impossibile trovare il membro pubblico 'dispose' nel tipo 'ApplicationClass'.

cin
575 messaggi dal 06 settembre 2002
Contributi
Ti posto un po di codice
oWB è Excel._Workbook
oXL è Excel.Application
oSheet è Excel._Worksheet

oWB.SaveAs(this.FileName,System.Reflection.Missing.Value,System.Reflection.Missing.Value,
System.Reflection.Missing.Value,System.Reflection.Missing.Value,System.Reflection.Missing.Value,Excel.XlSaveAsAccessMode.xlNoChange,System.Reflection.Missing.Value,
System.Reflection.Missing.Value,System.Reflection.Missing.Value,System.Reflection.Missing.Value,System.Reflection.Missing.Value);
//Attendo finche non è salvato
while(!oWB.Saved)
System.Windows.Forms.Application.DoEvents();


// Chiudo l'Automation object
oXL.Quit();
//Rilascio la risorsa
System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(oWB);
System.Runtime.InteropServices.Marshal.ReleaseComObject(oXL);
oSheet=null;
oWB=null;
oXL = null;
GC.Collect(); // Forzo la pulitura! chiamndo il Garbage

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.