3 messaggi dal 14 maggio 2001
Ciao a tutti volevo semplicemente aggiungere che è possibile selezionare completamente l'intero foglio di Excel senza definire un'area con l'istruzione Select : "Select * from [Foglio1$]"
Attenzione ad avere nel file di Excel il Foglio1 chiaramente...altrimenti dovrete cambiare la select nel nome del Foglio corrispondente ( è case sensitive...). In questo modo è possibile non definire un'area ma semplicemente accedere ai campi in maniera trasparente. Grazie per l'attenzione.
Saluti.
Rober.

43 messaggi dal 06 settembre 2002
Grazie per il suggerimento di " dgsrbt". Ha perfettamente ragione.

Inoltre vorrei apportare anch'io un contributo importante.
Nell'esempio, la stringa di connessione e' errata.
Ho passato un pomeriggio a capire cosa c'era che non funzionava e poi ho scoperto che la sintassi e' sbagliata.

La stringa giusta e' questa:

objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &_ Server.MapPath("NomedelFile.xls") & "Extended Properties=""Excel 8.0;HDR=Yes;"""

Sono IMPORTANTISSIME le doppie virgolette, o non funzionera' niente!

Ciao.


Luca
www.blade-runner.it
123 messaggi dal 18 aprile 2001
ho utilizzato del codice ASP trovato nel forum per leggere/scrivere file Excel.

PROVANDO AD APRIRE LA CONNESSIONE CON
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="& Server.MapPath("File.xls") & "Extended Properties=""Excel 97; HDR=Yes;"""

IL SISTEMA RISPONDE
Microsoft JET Database Engine error '80004005'
Impossibile trovare ISAM installabile.

HO APERTO LA CONNESSIONE CON
objConn.Open "DRIVER={Microsoft Excel Driver (*.xls)}; DBQ=" & server.MapPath("file.xls")

E CONTINUATO CON
set objRS = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM [Foglio1$]"
ObjRS.Open SQL, objConn
response.write objrs("NOME")
ObjRS.close
set ObjRS=nothing
objConn.close
set objConn=nothing

TUTTO OK. MA QUANDO RILANCIO IL FILE VA IN ERRORE SULLA
ObjConn.Open

DICENDO
Provider error '80004005'
Errore non specificato

CHIUDO LA SESSIONE, LA APRO DI NUOVO E TUTTO FUNZIONA

GRAZIE
1 messaggio dal 04 luglio 2003
Ciao a tutti! Sono nuovo del forum (e abbastanza novello anche con l'Asp).

>renatosilli ha scritto:
>ho utilizzato del codice ASP trovato nel forum per leggere/scrivere file Excel.

>PROVANDO AD APRIRE LA CONNESSIONE CON
>objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="& Server.MapPath("File.xls") & "Extended Properties=""Excel 97; HDR=Yes;"""

>IL SISTEMA RISPONDE
>Microsoft JET Database Engine error '80004005'
>Impossibile trovare ISAM installabile.


Anche a me succedeva lo stesso, credo ci sia un errore nella stringa di connessione postata. Manca ";" prima di Extended Properties.
Io ho cambiato la stringa in

objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="& Server.MapPath("File.xls") & ";Extended Properties=""Excel 97; HDR=Yes;"""

e tutto mi va.



Se invece uso
objConn.Open "DRIVER={Microsoft Excel Driver (*.xls)}; DBQ=" & server.MapPath("file.xls")

ho lo stesso pb di renatosilli.


Volevo poi fare una domanda. Se in una colonna del mio file excel ho dei numeri misti a sigle (es un "nd" per non disponibile), come faccio a gestirli? Non riesco a visualizzarli.

Grazie e ciao
LucaS75


160 messaggi dal 23 febbraio 2004
quasi ci sono...:

il code funzionate è questo (da sistemare):

<%
SQL = "SELECT * from [Foglio1$]"
strProvider="DRIVER=Microsoft Excel Driver (*.xls); DBQ=" & Server.MapPath ("cartel1.xls") 
Set rs = Server.CreateObject("ADODB.recordset") 
rs.Open SQL, strProvider 

response.write rs("nome")
response.write rs("cognome") 
response.write rs("telefono")

Dim ConnDown 
Set ConnDown=Server.CreateObject("ADODB.Connection") 
ConnDown.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath(path&"DB1.mdb") 
Dim SQL1, RECDown

SQL1 =  "INSERT INTO tbl1 (nome, cognome, telefono) VALUES  (' "& rs("nome") &" ',' "& rs("cognome") &" ',' "& rs("telefono") &" ' )"
set RECdown = connDown.execute(sql1) 
%>


la connessione legge il file excel, recupera i dati in esso contenuto e poi li scrive nella tbl del database; queste le perplessità:

a) nel foglio excel le riche sono due, mentre si stampa a video solo la prima e solo i dati della prima riga vengono scritti nel dbase, perchè?

b) e se il nome del foglio excel è variabile? l'esempio riporta un preciso nonme di file excel (cartel1.xls);

CIAO E GRAZIE
2 messaggi dal 01 aprile 2004
Tentando di scrivere un record utilizzando il codice descritto sopra, mi da un errore del tipo:

operzione non supportata dal server o dal provider......

Avete qualche suggerimento in merito ??

Grazie anticipatamente....
3 messaggi dal 14 maggio 2001
omnia2004 ha scritto:
Innanzitutto hai effettuato 3 response.write ma devi scorrere il file di excel come se scorressi qualsiasi altro file quindi racchiudere le istruzioni in un ciclo do while
e allo stesso modo inserirai utilizzando un ciclo altrimenti è chiaro che il puntatore è posizionato sul primo record e da lì....non lo muovi..
Ciao.

quasi ci sono...:

il code funzionate è questo (da sistemare):

<%
SQL = "SELECT * from [Foglio1$]"
strProvider="DRIVER=Microsoft Excel Driver (*.xls); DBQ=" & Server.MapPath ("cartel1.xls") 
Set rs = Server.CreateObject("ADODB.recordset") 
rs.Open SQL, strProvider 

response.write rs("nome")
response.write rs("cognome") 
response.write rs("telefono")

Dim ConnDown 
Set ConnDown=Server.CreateObject("ADODB.Connection") 
ConnDown.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath(path&"DB1.mdb") 
Dim SQL1, RECDown

SQL1 =  "INSERT INTO tbl1 (nome, cognome, telefono) VALUES  (' "& rs("nome") &" ',' "& rs("cognome") &" ',' "& rs("telefono") &" ' )"
set RECdown = connDown.execute(sql1) 
%>


la connessione legge il file excel, recupera i dati in esso contenuto e poi li scrive nella tbl del database; queste le perplessità:

a) nel foglio excel le riche sono due, mentre si stampa a video solo la prima e solo i dati della prima riga vengono scritti nel dbase, perchè?

b) e se il nome del foglio excel è variabile? l'esempio riporta un preciso nonme di file excel (cartel1.xls);

CIAO E GRAZIE
1 messaggio dal 11 ottobre 2005
Sempre a proposito dell'estrazione di dati da un foglio di Excel mi è capitata una cosa stranissima...
Se in Excel inserisco una stringa alfanumerica, tipo "A6", in una cella formattata in qualsiasi modo (generale, TESTO, ecc...) con un bel response.write non mi stampa nulla!!!!!! Non ci sono errori ma mi stampa bianco... Eppure riconosce che c'è qualcosa nella cella: infatti se provo a verificare il contenuto in questo modo:

if contenutocelle="" then
response.write "?"
else
response.write "-" & contenutocelle
end if

Mi stampa solo il "-" senza il vero contenuto della cella...

Cosa può essere? Vi è mai capitato?

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.