Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    144

    Esportazione excel su una nuova finestra

    Ho provato ad esportare un dataset in excel usando il seguente codice:

    Response.ContentType = "application/vnd.ms-excel"
    Response.AddHeader("content-disposition", "inline; filename=chiamate.xls")
    Response.Charset = ""
    Me.EnableViewState = False
    Response.Write(DatasetToExcel(Ds.Tables(NomeTabell a)))
    Response.End()

    e tutto funziona perfettamente apparte il fatto che il foglio di excel viene aperto nella stessa pagina e quindi chiudendolo si chiude tutta l'applicazione web. Ho provato pertanto a fare la stessa cosa aprendo una nuova pagina e portando il codice sopra postato nella load della web form. Ebbene a questo punto il broweser non mi visualizza alcun errore, però vedo aprirsi la pagina e chiudersi immediatamente.
    Sapete dirmi da cosa può dipendere?!?!

  2. #2

  3. #3
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Io faccio in questo modo. Metto sulla pagina nomepagina.aspx un pulsante con window.open('nomepagina.aspx?excel=ok');

    Nell'evento onload della pagina

    Codice PHP:
    if(Request.QueryString["execel"]=="ok")
    {

     
    Response.ContentType "application/vnd.ms-excel"
    Response.AddHeader("content-disposition""inline; filename=chiamate.xls")
    Response.Charset ""
    Me.EnableViewState False
    Response
    .Write(DatasetToExcel(Ds.Tables(NomeTabella)))
    Response.End()



  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    144
    per aprire la pop up uso

    Page.RegisterStartupScript("OpenMyWindow", "<script language=""javascript"">window.open('Export_xls.as px');</script>")

    nella load della pagina che apro ho inserito il codice postato precedentemenete, ossia

    Response.ContentType = "application/vnd.ms-excel"
    Response.AddHeader("content-disposition", "inline; filename=chiamate.xls")
    Response.Charset = ""
    Me.EnableViewState = False
    Response.Write(DatasetToExcel(Ds.Tables(NomeTabell a)))
    Response.End()

    e una parte in cui recupero i dati dalla sessione.
    Vi assicuro che facendo debug sembra che tutto il codice venga eseguito, però vedo la pagina aprirsi e chiudersi. I pop up sono sbloccati. In effetti non sembra un problema di codice, in quanto provando ad aprire la pagina da un pc di un mio collega tutto fuziona correttamente. Inoltre facendo numerose prove, ho scoperto che pur avendo i popup sbloccati, per vedere la finestra di excel che mi chiede se salvare o aprire il documento devo premere ctrl come se avessi i popup bloccati. Devo però scoprire da cosa dipende in modo da poter dare informazioni precise all'utente finale.

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    ho provato e mi funziona.
    L'unico problema è che uso le protezioni predefinite dei browser, perciò, mai e poi mai mi funzionerà il codice

    Page.RegisterStartupScript("OpenMyWindow", "<script language=""javascript"">window.open('Export_xls.as px');</script>")


    la popup la apro esclusivamente da client con un normale pulsante html

    <input type="button" id="button1" value="apri" onclick="return button1_onclick()" />


    function button1_onclick()
    {
    window.open('b.aspx');
    }

    il popup prende i dati che gli servono, dalla session
    Pietro

  7. #7
    Io, al click su un LinkButton, eseguo un codice del genere:

    codice:
    Response.Clear();
    Response.AddHeader("Content-Disposition", "attachment; filename=documento.xls");
    Response.ContentType = "application/vnd.ms-excel";
    Response.BinaryWrite(buffer);
    Response.End();
    Dove buffer è un array di bytes che compone il file documento.xls.
    Questo apre la finestrella di download nella stessa pagina senza utilizzare alcun JS.
    L'unico inconveniente è che se l'applicativo va in errore, quest'ultimo verrà visualizzato nella pagina di origine e non in una popup.


  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da ZofM
    Io, al click su un LinkButton, eseguo un codice del genere:

    codice:
    Response.Clear();
    Response.AddHeader("Content-Disposition", "attachment; filename=documento.xls");
    Response.ContentType = "application/vnd.ms-excel";
    Response.BinaryWrite(buffer);
    Response.End();
    Dove buffer è un array di bytes che compone il file documento.xls.
    Questo apre la finestrella di download nella stessa pagina senza utilizzare alcun JS.
    L'unico inconveniente è che se l'applicativo va in errore, quest'ultimo verrà visualizzato nella pagina di origine e non in una popup.

    la differenza sta in "inline" o "attachment" ?

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    posso sapere come funziona questo metodo (DatasetToExcel) ???

  10. #10

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.