Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30
  1. #1
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125

    Esportazione in Excel tramite ASP

    Ciao ho il seguente problema:

    esporto tramite ASP dei dati di access in un file excel; questo file excel che si genera è grande più di 2 mega, contiene circa 8.000 records e crea dei seri problemi in apertura in locale (excel praticamente si blocca).

    Cosa posso fare?

    Questo è il codice che utilizzo:
    codice:
    <%
    
    Dim FileName 
    FileName="file.xls" 
    Response.Buffer = true
    Response.ContentType = "application/vnd.ms-excel" 
    Response.AddHeader "content-disposition", "inline; filename=" & FileName 
    path="../mdb/database.mdb" 
    
    Dim DBConn 
    Set DBConn=Server.CreateObject("ADODB.Connection") 
    
    Dim rs 
    set rs=Server.CreateObject("ADODB.Recordset") 
    strConn="Provider = Microsoft.Jet.OLEDB.4.0;" 
    strConn= strConn & "Data Source =" & Server.MapPath(path) 
    DBConn.Open strConn 
    
    cod = request.form("Id")
    
    Set rs = DBConn.Execute("SELECT * FROM TABELLA where ID in ("&cod&") order by ID asc")
    
      Response.write "<table border=1>" 
      Response.Write("<tr>") 
    
    ....
    
      Response.write "</tr>" 
      Response.write "<tr>" 
      Response.Write("<td>") 
      Response.write rs.GetString(,,"</td><td>","</td></tr><tr><td>","") 
      Response.write "</td></tr></table></center>" 
      
    Set rs=Nothing 
    DBConn.Close 
    Set DBConn= Nothing 
    
    Response.flush 
    Response.end 
    %>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    ASP non credo c'entri molto.
    Se Excel si blocca vuol dire che un file di 2mb è troppo... Riducilo mettendo un tot di record su "n" file.

    Roby

  3. #3
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Grazie Roby, ma come faccio a dividere in records su due file excel diversi?

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Fai una TOP 100, metti un campo nel db per idnividuare quelli già stampati ed incrementi un contatore... Ogni volta fai in modo che il nuovo file Excel cambi nome.

    Roby

  5. #5
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Non ho capito, scusa... se la query è questa:

    codice:
    Set rs = DBConn.Execute("SELECT * FROM TABELLA where ID in ("&cod&") order by ID asc")

  6. #6
    codice:
    ("SELECT TOP 100 * FROM ... ")

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    E poi una volta creato il file devi mettere ad 1 un campo del db altrimenti con la TOP 100 prenderesti sempre i primi e mai gli altri...

    Roby

  8. #8
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Grazie Mems, adesso estraggo i primi cento records che corripsondono alla query ma per gli altri 3.700 ??? :master:

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Te l'ho già detto.
    Estratti i primi 100 metti un flag (1) ad ognuno di essi.
    La SELECT devi farla per i primi 100 record dove il campo flag valga 0.

    Roby

  10. #10
    Allora fai una paginazione a 100 per pagina.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.