ciao
in una pagina aspx ho un button che dovrebbe eseguire dei metodi che
creano un file excel e ci scrivono dentro.
fin qui nessun problema
il problema è che quando chiudi il file excel rimane il processo
EXCEL.EXE attivo e non si chiude.
nel codice intercetto correttamente l'evento di chiusura del file excel
da parte dell'utente ma poi non viene eseguita l'ultima istruzione che
ho messo nel metodo che intercetta tale evento.
il codice che uso è questo:
using System;
using Excel;
using System.Reflection;
namespace ns
{
/// <summary>
/// Descrizione di riepilogo per genera_excel.
/// </summary>
public class genera_excel : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
Excel.Application xlApp;
// Excel.Workbook xlBook;
Excel.Worksheet xlSheet1;
Excel.AppEvents_WorkbookBeforeCloseEventHandler
EventDel_BeforeBookClose;
private void Button1_Click(object sender, System.EventArgs e)
{
UseDelegates();
}
private void UseDelegates(){
xlApp = new Excel.ApplicationClass();
xlApp.Visible = true;
xlApp.Workbooks.Open(@"C:\template_excel.xls",Miss ing.Value,Missing.Value,Missing.Value,Missing.Valu e,Missing.Value,Missing.Value,Missing.Value,Missin g.Value,Missing.Value,Missing.Value,Missing.Value, Missing.Value,Missing.Value,Missing.Value);
xlSheet1 = (Excel.Worksheet)xlApp.Sheets["Foglio1"];
xlSheet1.get_Range("A17",Missing.Value).set_Value( Missing.Value,"123456");
xlSheet1.Activate();
EventDel_BeforeBookClose = new
Excel.AppEvents_WorkbookBeforeCloseEventHandler(Be foreBookClose);
xlApp.WorkbookBeforeClose += EventDel_BeforeBookClose;
xlApp.Visible = true;
xlApp.UserControl = true;
}
private void BeforeBookClose(Excel.Workbook Wb, ref bool Cancel )
{
//This is called when you choose to close the workbook in Excel.
//The event handlers are removed and then the workbook is closed
//without saving changes.
Wb.Saved = true;
xlApp.WorkbookBeforeClose -= EventDel_BeforeBookClose;
}
}
}
Se metto un break su Wb.Saved = true; appena esegue questa istruzione
mi da l'errore:
Eccezione non gestita di tipo "System.ExecutionEngineException" in
aa.dll ma poi continua l'esecuzione.
poi mi compare nel foglio excel la domanda se voglio salvare il file o
no? gli dico di no e si chiude. solo che rimane aperto il processo nel
task manager
sbaglio qualcosa?
un'altra cosa. se uso firefox il file excel non me lo apre nemmeno
mi sapete aiutare?
grazie