| | Post: 1 | Registrato il: 14/06/2017
| Città: MILANO | Età: 29 | Utente Junior | Excel 2016 | | OFFLINE | |
|
14/06/2017 12:17 | |
Ciao a tutti,
Mi rivolgo a voi perchè ho un problema. Ho diversi file in formato CSV che vorrei elaborare, il problema è che i file sono troppo grossi, arrivano fin oltre al Giga e quindi supero il numero massimo di righe possibili in un solo foglio excel, che è poco più di 1'000'000 di righe.
Ho provato a importare i dati dal file CSV sfruttando più pagine e impostando quindi il trasferimento dei dati nella seconda pagine in modo che parta da una riga scelta da me. Il problema è che mi carica solo altre 4 o 5 righe, che sia un file da 1G o da 500KB quindi qualcosa non torna per forza.
Come posso fare?
Grazie mille a tutti per l'aiuto |
|
| | Post: 3.897 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
14/06/2017 17:44 | |
dodos95, 14/06/2017 12.17:
Ho provato a importare i dati dal file CSV sfruttando più pagine e impostando quindi il trasferimento dei dati nella seconda pagine in modo che parta da una riga scelta da me.
Come hai provato ? con una macro ? quale ? potresti provare questa, ma credo che sia lenta
Sub ImportCSVFileCommaMultipleSheets() '
filepath = "F:\Documenti\Excelfile\Macro-VBA\Csv\CommaDelim.txt"
linenumber = 0
elementnumber = 0
maxlines = numero linee per foglio '<<<<<<<<<<<<<<
Open filepath For Input As #1 ' Open file for input
Do While Not EOF(1) ' Loop until end of file
linenumber = linenumber + 1
If linenumber > maxlines Then
linenumber = 1
ActiveWorkbook.Sheets.Add
End If
Line Input #1, line
arrayOfElements = Split(line, ",") ' <<< separatore da modificare
elementnumber = 0
For Each element In arrayOfElements
elementnumber = elementnumber + 1
Cells(linenumber, elementnumber).Value = element
Next
Loop
Close #1 ' Close file.
End Sub
[Modificato da patel45 14/06/2017 17:52]
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 1 | Registrato il: 14/06/2017
| Città: MILANO | Età: 29 | Utente Junior | Excel 2016 | | OFFLINE | |
|
16/06/2017 15:47 | |
Nono ho provato con una cosa proprio più terra terra, che le mie conoscenze di informatica sono abbastanza limitate, la scrittura che hai messo te non saprei nemmeno dove metterla eheheh
Io ho provato direttamente al trasferimento dati dal File CSV al foglio excel. Quindi cliccando Dati->Carica dati esterni da testo-> e li cambiando la voce "inizia ad importare dati alla voce" e numero della riga.
Solo che appunto lo faccio la prima volta e non c'è problema partendo dalla numero 1, finisco la pagina per i troppi dati, prendo quindi la riga 1M e qualche cosa, faccio la stessa cosa nel foglio 2 ma variando la riga e li non mi funziona, o meglio mi carica solo le prima 4 righe anche se ne ha altre 5M.
Ora sto utilizzando un programma per dividere in automatico il file in parti più piccole, con file da 1M di righe, così da stare dentro il limite.
Ma sono comunque curioso di sapere se c'è qualche modo diverso per lavorarci sopra |
| | Post: 3.898 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
17/06/2017 09:27 | |
il modo è imparare ad usare le macro come quella che ti ho fornito, occorre un po' di impegno, voglia di cercare e imparare.
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 2 | Registrato il: 14/06/2017
| Città: MILANO | Età: 29 | Utente Junior | Excel 2016 | | OFFLINE | |
|
17/06/2017 17:54 | |
Perfetto, mi ci metto allora, tanto tornerà sicuramente utile.
Molte grazie! |
|
|