Come posso salvare un foglio di calcolo Excel come file di valori separati da due punti e virgola?


31

Sto eseguendo Excel e vorrei esportare il mio file come foglio .scsv (valori separati da punti e virgola) anziché come .csv. C'è un modo per fare questo?

ps. Non riesco a fare un .csv e cercare e sostituire le virgole con punti e virgola perché i campi contengono già virgole.


Se sei aperto a fare un po 'di programmazione, un convertitore potrebbe essere scritto abbastanza facilmente nel linguaggio di programmazione Python usando il suo csvmodulo integrato che semplificherebbe la lettura dei file .csv di Excel e quindi la scrittura di nuove versioni che avevano appena su qualsiasi delimitatore desiderato.
martineau,

Dipende se ci sono virgole nelle voci o meno.
AER,

Risposte:


20

Che ne dici di fare Delimitato da tabulazioni e sostituire le schede con punti e virgola?

In Excel: File -> Salva con nome -> in Formato selezionare "Testo delimitato da tabulazione (.txt)", quindi il suo salvataggio.

Apri il file nel blocco note e apri la finestra di sostituzione. Dal momento che non puoi tab direttamente in questa finestra, copia una scheda dal tuo documento e poi incollala nella casella Trova e inserisci il tuo; nella casella di sostituzione. Quindi sostituire tutto.

Presumo che funzionerebbe perché è molto raro avere schede all'interno di un documento Excel.


Sebbene di base per la maggior parte degli utenti, potresti fornire anche una serie di istruzioni?
Canadian Luke REINSTATE MONICA,

Può essere fatto interamente in Excel e, in tal caso, come?
martineau,

Non penso che possa essere fatto interamente in Excel. Excel nasconde la formattazione (schede) in modo da non poterli sostituire. Dopo averli sostituiti con punti e virgola non si sarebbe nemmeno in grado di aprire con Excel (sarebbe solo una cella gigante)
Robert,

Presumo che usare regex per sostituire e piazzare \tavrebbe funzionato
Yassin Hajaj il

Quando nel tuo file sono presenti caratteri speciali di una lingua diversa (come il greco), ciò non sembra funzionare poiché i simboli dei caratteri vengono sostituiti da "?"
Joos,

8

Non penso che tu possa impostare il separatore di output direttamente in Excel, ma (supponendo che Windows) potresti cambiare il separatore dell'elenco di SO in ;- questo è fatto Regional Settings->Customize. Excel utilizzerà tale impostazione per l'output dei file CSV.


5
Nota importante: se lo fai, tutti i programmi Windows che usano le librerie Windows internazionalizzate lo presumeranno; è il carattere separatore per tutti i file CSV. Se questa è una soluzione unica, probabilmente ha più senso salvare un normale file CSV e utilizzare un editor per modificare le virgole in punti e virgola
Isaac Rabinovitch,

Questa modifica influirà anche sull'apertura dei file CSV in Excel. E come menzionato nel commento sopra, forse più programmi. Se si desidera creare un file CSV più compatibile, inserire sep=;il file CSV, quindi una volta salvato il file, è possibile ripristinare il separatore di elenco a qualunque esso fosse.
papo,

7

Usa LibreOffice Calc (è un download gratuito e funziona su tutti i principali sistemi operativi).

Per salvare valori separati da punti e virgola:

  1. Apri il tuo file xlsx / csv
  2. File -> Salva con nome ...
  3. Scegli "Filtro CSV" come filtro (dovrebbe essere predefinito se il nome del tuo file termina con .csv)
  4. Spuntare "Modifica impostazioni filtro" e premere Salva
  5. Quando viene richiesta la conferma del formato del file, premere "Usa formato CSV testo"
  6. Cambia il "Delimitatore di campo" in un punto e virgola (puoi digitare qualsiasi cosa qui).
  7. Premere OK.

LO Calc gestirà correttamente virgole e punti e virgola nei valori di cella.


1
Grazie, funziona bene. Questa dovrebbe essere la risposta accettata.
Ortomala Lokni,

4

Se desideri uno script, incolla quanto segue in un modulo.

Option Explicit
Sub export2scsv()
    Dim lastColumn As Integer
    Dim lastRow As Integer
    Dim strString As String
    Dim i As Integer, j As Integer

    lastColumn = ActiveSheet.UsedRange.Column - 1 + ActiveSheet.UsedRange.Columns.Count
    lastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row

    Open "output.scsv" For Output As #1

    For i = 1 To lastRow
        Cells(i, 1).Select
        strString = ""
        For j = 1 To lastColumn
            If j <> lastColumn Then
                strString = strString & Cells(i, j).Value & ";" ' Use semicolon instead of pipe.
            Else
                strString = strString & Cells(i, j).Value
            End If
        Next j
        Print #1, strString
    Next i

    Close #1
End Sub

4

Per modificare la virgola in punto e virgola come separatore Excel predefinito per CSV - vai su Regione -> Impostazioni aggiuntive -> scheda Numeri -> Separatore elenco e tipo; invece del valore predefinito,


3

È possibile modificare il separatore a livello globale tramite Personalizza formato.

Passa a Regione e lingua, apri Regione, nei formati dei tabsheet fai clic sul pulsante Impostazioni aggiuntive, e sui tabsheet I numeri cambiano il valore per Separatore elenco:


Non limitarti a pubblicare un link alla risposta, includi i dettagli salienti nella risposta. Se la pagina targetizzata scompare, la risposta è inutile. Inoltre, anche se non sono un esperto di Windows, questo sembra lo stesso della risposta di WMZ di tre anni fa.
blm

0

1.> Cambia formato file in. CSV (punto e virgola delimitato)

Per ottenere il risultato desiderato, è necessario modificare temporaneamente l'impostazione del delimitatore nelle Opzioni di Excel.

Sposta in File -> Opzioni -> Avanzate -> Sezione di modifica

Deseleziona l'impostazione "Usa separatori di sistema" e inserisci una virgola nel campo "Separatore decimale".

Ora salva il file nel formato .CSV e verrà salvato nel formato delimitato da punto e virgola !!!


5
Tratto da ashwaniashwin.wordpress.com/2013/04/19/… Nota che è necessaria l'attribuzione.
Arjan,

0

Se il tuo elenco di valori è nella colonna A, prova questo: Cella B2 = A1 & ";" & A2 Cella B3 = B2 & ";" & A3 Copia la cella B3 in fondo all'elenco. Se copi e incolli l'ultima cella del tuo elenco come valori, avrai il tuo elenco separato da punti e virgola. Puoi quindi copiarlo in Blocco note, Word o ovunque desideri.


0

Puoi farlo facilmente in 4 passaggi con la funzione concatenata di Excel.

  1. Nel tuo file, aggiungi una colonna di punti e virgola in cui ti aspetteresti che arrivino in un'esportazione .csv.

  2. Inizia una nuova colonna alla fine dei tuoi dati e nella prima riga usa la =concatenate()funzione. Assicurati di selezionare tutte le celle che desideri vengano visualizzate nel file finale. La tua formula avrà un aspetto simile=concatenate(A1,A2,A3...)

  3. Copia e incolla la formula risultante verso il basso attraverso tutte le righe di dati.

  4. Seleziona l'intera colonna di formule e Incolla speciale -> Valori nella colonna vicina. Ora hai tutti i tuoi dati delimitati da punti e virgola.

Infine, esporta nel formato di file che preferisci. Se lo esporti come .txt in Windows, puoi semplicemente modificare l'estensione del file in .csv perché entrambi sono formati di testo semplice.


-3

Uso in modo semplice: -

  1. Apri il file CSV (punto e virgola) con Blocco note o Blocco note ++.
  2. Trova e sostituisci (Ctrl + H) dal punto e virgola (;) alla virgola (,).
  3. Salva e chiudi il file.
  4. Ora, apri il file di modifica con Ms-Excel.

Funziona solo se nessuna stringa contiene un ";" o "," altrimenti questo non genererebbe ciò che l'autore vuole effettivamente.
Ramhound,

1
Questo sta andando nella direzione sbagliata. La domanda chiede come creare un file di valori separati da due punti e virgola; questa risposta presuppone che un virgola Separated valori già esiste e descritto come creare un file CSV - erroneamente, in quanto non tiene conto del vincolo di chiave della questione: cioè che i dati sono noti per contenere il delimitatore .
G-Man dice "Reinstate Monica" il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.