2013-06-11 11:04:23 +0000 2013-06-11 11:04:23 +0000
99
99
Advertisement

Come fare in modo che Excel interpreti la virgola come delimitatore di default nei file CSV?

Advertisement

Ho un certo numero di file .csv. Alcuni di essi sono delimitati da virgola, altri da tabulazione (forse dovrebbero essere chiamati .tsv …)

L'estensione csv viene associata ad Excel quando Excel è installato. Tuttavia, se apro uno di questi file con Excel, tutto viene scaricato nella stessa colonna e la virgola non viene interpretata come delimitatore.

Posso invece di File -> Importa…, selezionare il file, e scegliere il modo preciso di interpretare i contenuti (delimitatori, tipi di dati, ecc.) Ma il più delle volte voglio solo guardare il file attraverso una chiara visualizzazione tabellare. Non voglio elaborarlo con Excel.

C'è un modo per far sì che Excel interpreti automaticamente il delimitatore e mostri il file CSV come una vera e propria tabella non appena viene aperto? Ho bisogno di questo per poter usare Excel come visualizzatore rapido per tali file.

Sospetto che ci debba essere un modo, altrimenti Excel non si assocerebbe ai file CSV.

Advertisement
Advertisement

Risposte (9)

100
100
100
2013-12-10 14:38:58 +0000

Se non state cercando di modificare il formato del file, e state mirando SOLO ad Excel, potete usare il seguente trucco di Excel per aiutarvi.

Aggiungete una nuova riga nella parte superiore del file con il testo "sep=," (comprese le virgolette) in modo che Excel apra il file con “,” come separatore di lista.

È un trucco molto facile per evitare di cambiare le impostazioni regionali di Windows e ottenere un risultato coerente. Ma è specifico per Excel.

85
85
85
2013-06-11 11:07:17 +0000

Durante l'apertura dei file CSV, Excel utilizzerà un'impostazione regionale del sistema chiamata List separator per determinare quale delimitatore predefinito utilizzare.

Microsoft Excel aprirà i file .csv, ma a seconda delle impostazioni regionali del sistema, potrebbe aspettarsi un punto e virgola come separatore invece di una virgola, poiché in alcune lingue la virgola è utilizzata come separatore decimale. (da Wikipedia )


Su Windows , si può cambiare l'impostazione List separator nel Regional and Language Options come specificato sul sito web di supporto Office support website :

Cambiare il separatore in un file di testo CSV

  1. Fare clic sul menu Start di Windows.
  2. 2. Fare clic su Pannello di controllo.
  3. 3. Aprire la finestra di dialogo Regional and Language Options.
  4. 4. Fare clic sulla scheda Opzioni regionali
  5. 5. Fare clic su Personalizza / Impostazioni aggiuntive (Win10).
  6. 6. Digitare un nuovo separatore nella casella Separatore elenco.
  7. Fare clic due volte su OK.

Nota : questo funziona solo se il simbolo decimale non è indicato anche come virgola (in linea con la citazione di Wikipedia di cui sopra). Se lo è, Excel non userà la virgola come separatore di lista, anche se scelto. Per molte regioni non statunitensi, la virgola è il simbolo decimale predefinito.

Su Mac OS X , questa impostazione sembra essere dedotta dall'impostazione del separatore decimale (nel riquadro Language & Region di System Preferences, andare a Advanced). Se il Decimal Separator è un punto, allora il separatore CSV di default sarà una virgola, ma se il Decimal Separator è una virgola, allora il separatore CSV di default sarà un punto e virgola.

Come hai detto tu stesso nel commento, c'è un'alternativa per gli utenti Mac per guardare velocemente quei file CSV. Si tratta di un plugin per Quick Look chiamato quicklook-csv che gestisce il rilevamento del separatore.

11
Advertisement
11
11
2017-06-02 12:27:39 +0000
Advertisement

Non c'è bisogno delle virgolette intorno a sep=, - finché è la prima riga del file funzionerà, almeno con Excel 2016.

ho scoperto che se il file è delimitato a schede, sep=\t funziona bene, con e senza le virgolette.

5
5
5
2018-07-21 11:55:56 +0000
1
Advertisement
1
1
2019-09-23 12:03:13 +0000
Advertisement

Avevo un file .csv con separatore ; e impostazioni regionali impostate su List separator ;. Tuttavia Excel ancora non analizzava le colonne.

&005

Si è rivelato un problema di codifica. I file sono stati esportati da SQL server Management Studio 2005 e sono stati codificati in UCS-2 LE BOM. Usando Notepad ++ ho cambiato la codifica in UTF-8 e tutto ha iniziato a funzionare.

1
1
1
2018-06-25 14:46:53 +0000

Quando il separatore nelle impostazioni regionali non è una virgola ma un punto e virgola (separatore olandese), rinominare il file CSV in un file TXT. Cliccare con il tasto destro del mouse sul file TXT e selezionare “Apri con” e selezionare “Excel”. In Excel selezionare la prima colonna, selezionare i dati nel nastro e separare il testo in colonne.

OR

Installare LibreOffice e aprire il file CSV con LibreOffice Calc.

0
Advertisement
0
0
2018-01-22 13:50:36 +0000
Advertisement

Per l'olandese ho avuto il problema che Excel 2008 su Windows 7 non aderisce a RFC4180:

“I campi contenenti interruzioni di riga (CRLF), doppi apici e virgole devono essere racchiusi tra virgolette”

Un file separato da virgole aveva correttamente i campi con una virgola (separatore decimale olandese) racchiusi tra virgolette. Nel locale olandese il separatore decimale è , e il separatore di lista è ;, quindi Excel non poteva leggere un file con , usato per entrambi (nemmeno dopo aver cambiato esplicitamente il separatore di lista in , nel Pannello di controllo).

L'ingresso assomiglia a:

"06-07-2017 17:03:18"," ********",0:01:04,Uitgaand,"0,1879","0,2273","0,0395",21
``` ```
sep=,

La soluzione è stata data da @user280725:

Usi il Blocco note da inserire come prima riga:

&001

(Ciò significa che la nota dell'utente @zakinster nella sua soluzione non deve più essere applicata. )


Interessante: con il file csv ancora caricato, se ora si imposta il locale in inglese americano nel Pannello di controllo e si salva il file, esso sarà stato convertito nel formato inglese americano (virgola come separatore di lista e punto come separatore decimale).

0
0
0
2017-06-12 17:22:25 +0000

Assicuratevi di ispezionare il file CSV in un semplice editor come Notepad per verificare che sia correttamente formattato.

Ho aggiunto questa risposta dopo aver risolto uno stupido bug in cui i file CSV che ho creato con VB non erano aperti con colonne separate in Excel. Ho scoperto che il modo in cui avevo scritto le righe avvolgeva ogni riga con le virgolette. Excel nascondeva le virgolette e mostrava l'intera riga nella colonna A, facendola apparire come se ignorasse i miei separatori di virgole.

0
Advertisement
0
0
2017-07-31 06:30:51 +0000
Advertisement

Il modo migliore sarà quello di salvarlo in un file di testo con estensione csv

Sub ExportToCSV()
    Dim i, j As Integer
    Dim Name As String

    Dim pathfile As String

    Dim fs As Object
        Dim stream As Object

        Set fs = CreateObject("Scripting.FileSystemObject")
    On Error GoTo fileexists

    i = 15
    Name = Format(Now(), "ddmmyyHHmmss")
    pathfile = "D:\" & Name & ".csv"

    Set stream = fs.CreateTextFile(pathfile, False, True)

fileexists:

    If Err.Number = 58 Then
        MsgBox "File already Exists"
        'Your code here
        Return
    End If
    On Error GoTo 0

    j = 1
    Do Until IsEmpty(ThisWorkbook.ActiveSheet.Cells(i, 1).Value)

        stream.WriteLine (ThisWorkbook.Worksheets(1).Cells(i, 1).Value & ";" & Replace(ThisWorkbook.Worksheets(1).Cells(i, 6).Value, ".", ","))

        j = j + 1
        i = i + 1
    Loop

stream.Close

End Sub
Advertisement

Domande correlate

6
13
9
10
5
Advertisement
Advertisement