|
||||
|
|||||||
![]() |
|
|
Strumenti della discussione | Modalità di visualizzazione |
|
|
#1 (permalink) |
|
Nuovo della community ![]()
22 Messaggi
![]() |
Esportare dati excel - Numeri memorizzati come testo
Scusate se ritorno sui miei problemi con excel; questa la mia difficoltà:
Ho espostato un arraylist in excel, tutto bene se non fosse che i numeri compaiono in excel con la formatazione testo. Ovviamente la loro formatazione deve essere numerica in modo che sul foglio elettronico si possano compiere calcoli.Vi ringrazio per l'aiuto Ultima modifica di elisab : 14-03-2010 a 02:41. |
|
|
|
|
|
#2 (permalink) | ||
|
Very Important Person ![]() ![]()
732 Messaggi
![]() ![]() ![]() ![]() |
Ciao
![]() stai aprendo il foglio di excel come database e poi fai l'INSERT? Nel link che ti avevo segnalato nell'altra discussione c'era un riferimento al problema sui tipi di dato (col traduttote automatico è italiettano, ma si capisce). Quote:
Quote:
Quando tu cerchi d'inserire un numero (con i parametri creando il parametro col tipo di dato corretto e assegnando come Value un numero, oppure se usi una query concatenata assicurandoti che il valore non sia tra apici) vengono controllate le prime 8 righe e se rileva che la colonna contiene stringhe il numero è comunque riconosciuto come stringa. Il problema c'è se il foglio che devi riempire è vuoto, se invece fai l'inserimento in un foglio che contiene già dei valori e la colonna è riconosciuta come contenete numeri i successivi, se inseriti correttamente, sono dati numerici. Penso che non si possa fare gran che se non usare l'automazione per modificare il tipo di dato o, in alternativa, usare l'automazione per fare l'inserimento. Ciao ![]()
__________________
Sei nuovo? Hai già letto il nostro regolamento?? Hai dubbi sulle funzionalità del forum? Allora dai un'occhiata alle FAQ L'alito del mio gatto sa di cibo per gatti.
Ultima modifica di elisab : 09-03-2010 a 20:55. |
||
|
|
|
|
|
#3 (permalink) |
|
Nuovo della community ![]()
22 Messaggi
![]() |
Elisab, ti ringrazio per i consigli sempre puntuali e prezioni.
Ho aggirato il problema della formatazione che, in effetti era di difficile soluzione; ho adottato una diversa tecnica di scrittura su excel però la transazione è molto più lenta. Mi puoi spiagare che differenze ci sono tra queste due "tecniche" : I° (mi dava il problema della formatazione ma era molto più veloce): codice:
Dim cn As New OleDb.OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\Excell.xls; Extended Properties = Excel 8.0")
Dim strSQL As String
.
.
strSQL = "insert into [Foglio1$] values ('" & dbclear(r, 0) & "')"
Dim dm As New OleDb.OleDbCommand(strSQL, cn)
dm.ExecuteNonQuery()
II° (nessun problema ma è più lenta) codice:
Dim objapplic As Excel.Application
Dim ct AsInteger
Dim range AsString
objapplic = New Excel.Application
Dim worktable As Excel.Workbook
worktable = objapplic.Workbooks.Open("C:\Excell.xls")
.
.
DoUntil ct = cc
range = "A" & LTrim(Str(ct + 1))
worktable.Sheets("Foglio1").range(range) = dbclear(ct, 0)
ct = ct + 1
Ultima modifica di elisab : 10-03-2010 a 19:05. Motivo: Ho aggiustato il post e formattato il codice |
|
|
|
|
|
#4 (permalink) |
|
Very Important Person ![]() ![]()
732 Messaggi
![]() ![]() ![]() ![]() |
Ciao
![]() nel primo caso ti connetti ad Excel ed effettui la modifica, inserimento e interrogazione del foglio come se fosse un database. Excel non è un vero db, e il problema sui tipi di dati evidenzia un suo limite nell'accedervi come semplice db. Per provare ad inserire un numero nel foglio nella tua INSERT non devi mettere gli apici, rimane comunque il problema del controllo preventivo del tipo di dati sulla colonna. codice:
strSQL = "insert into [Foglio1$] values ('" & dbclear(r, 0) & "')"
Excel come foglio di calcolo ha tutta una serie di funzionalità che puoi manovrare da Vb.Net usando l'automazione (secondo esempio), che ti consente di chiamare metodi e proprietà che sono specifiche di attività di Excel. Ad esempio, quando fai una INSERT ti inserisce i dati in coda (un'eventuale cella vuota a cui è stato modificato il formato cella è riconosciuta come piena) con l'automazione puoi decidere in quale cella scrivere e che formattazione attribuire alle celle. Per velocizzare la scrittura nel foglio con l'automazione assegna una matrice (con più righe) ad un intervallo di celle. Guarda l'esempio in questo articolo. Ciao ![]() PS Per postare il codice premi il pulsante # presente nella barra e poi incolla il codice all'interno dei tag [code][/code]
__________________
Sei nuovo? Hai già letto il nostro regolamento?? Hai dubbi sulle funzionalità del forum? Allora dai un'occhiata alle FAQ L'alito del mio gatto sa di cibo per gatti.
|
|
|
|
![]() |
| Strumenti della discussione | |
| Modalità di visualizzazione | |
|
|
Tutti gli orari sono GMT +2. Attualmente sono le 09:47.











Modalità lineare

