Comment enregistrer une feuille de calcul Excel en tant que fichier de valeurs séparées par des points-virgules?

31

J'exécute Excel et je voudrais exporter mon fichier en tant que feuille .scsv (valeurs séparées par des points-virgules) au lieu d'un .csv. Est-ce qu'il y a un moyen de faire ça?

ps. Je ne peux pas faire un .csv et rechercher et remplacer des virgules par des points-virgules car les champs contiennent déjà des virgules.

Kamilski81
la source
Si vous êtes prêt à faire un peu de programmation, un convertisseur pourrait être écrit assez facilement dans le langage de programmation Python à l'aide de son csvmodule intégré, ce qui faciliterait la lecture des fichiers Excel .csv, puis en rédiger de nouvelles versions qui venaient de à propos de tout délimiteur souhaité.
martineau
Cela dépend s'il y a des virgules dans les entrées ou non.
AER

Réponses:

20

Que diriez-vous de faire délimité par des tabulations et de remplacer les tabulations par des points-virgules?

Dans Excel: Fichier -> Enregistrer sous -> au format, sélectionnez "Texte délimité par des tabulations (.txt)" puis sa sauvegarde.

Ouvrez le fichier dans le bloc-notes et ouvrez la fenêtre de remplacement. Comme vous ne pouvez pas tabuler directement dans cette fenêtre, copiez un onglet de votre document, puis collez-le dans la zone Rechercher et placez votre; dans la boîte de remplacement. Remplacez ensuite tout.

Je suppose que cela fonctionnerait car il est très rare d'avoir des onglets dans un document Excel.

Robert
la source
Bien que basique pour la plupart des utilisateurs, pourriez-vous également fournir un ensemble d'instructions?
Canadian Luke REINSTATE MONICA
Est-ce que cela peut être fait entièrement dans Excel et si oui, comment?
martineau
Je ne pense pas que cela puisse être fait entièrement dans Excel. Excel masque le formatage (onglets) afin que vous ne puissiez pas les remplacer. Après les avoir remplacés par des points-virgules, vous ne pourrez pas non plus ouvrir avec Excel (ce ne serait qu'une cellule géante)
Robert
Je suppose que l'utilisation de regex pour remplacer et placer \tfonctionnerait
Yassin Hajaj
Lorsque vous avez des caractères spéciaux d'une langue différente dans votre fichier (comme le grec), cela ne semble pas fonctionner car les symboles des caractères sont remplacés par '?'
Joos
8

Je ne pense pas que vous pouvez définir le séparateur de sortie directement dans Excel, mais (en supposant que Windows) vous pouvez changer le séparateur de liste des systèmes d'exploitation en ;- cela se fait en Regional Settings->Customize. Excel utilisera ce paramètre pour sortir vos fichiers csv.

wmz
la source
5
Remarque importante: si vous procédez ainsi, tous les programmes Windows qui utilisent les bibliothèques Windows internationalisées supposeront cela; est le caractère de séparation pour tous les fichiers CSV. S'il s'agit d'une solution unique, il est probablement plus judicieux d'enregistrer un fichier CSV normal et d'utiliser un éditeur pour remplacer les virgules par des points
Isaac Rabinovitch
Cette modification affectera également l'ouverture des fichiers CSV dans Excel. Et comme mentionné dans le commentaire ci-dessus, éventuellement plus de programmes. Si vous souhaitez créer un fichier CSV plus compatible, placez- sep=;le au-dessus du fichier CSV, puis une fois que vous avez enregistré le fichier, vous pouvez redéfinir le séparateur de liste sur ce qu'il était.
papo
7

Utilisez LibreOffice Calc (c'est un téléchargement gratuit et fonctionne sur tous les principaux systèmes d'exploitation).

Pour enregistrer dans des valeurs séparées par des points-virgules:

  1. Ouvrez votre fichier xlsx / csv
  2. Fichier -> Enregistrer sous ...
  3. Choisissez "Filter CSV" comme filtre (devrait être par défaut si votre nom de fichier se termine par .csv)
  4. Cochez "Modifier les paramètres du filtre" et appuyez sur Enregistrer
  5. Lorsqu'il demande une confirmation du format de fichier, appuyez sur "Utiliser le format CSV texte"
  6. Remplacez le "Délimiteur de champ" par un point-virgule (vous pouvez taper n'importe quoi ici).
  7. Appuyer sur OK.

LO Calc gère correctement les virgules et les points-virgules dans les valeurs de cellule.

rien101
la source
1
Merci, ça marche bien. Ce devrait être la réponse acceptée.
Ortomala Lokni
4

Si vous souhaitez un script, collez ce qui suit dans un module.

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
user157938
la source
4

Pour changer la virgule en point-virgule comme séparateur Excel par défaut pour CSV - allez dans Région -> Paramètres supplémentaires -> onglet Numéros -> Séparateur de liste et tapez; au lieu de la valeur par défaut,

Michael
la source
3

Vous pouvez modifier le séparateur globalement via Personnaliser le format.

Accédez à Région et langue, ouvrez Région, sur Formats de feuille de tabulation, cliquez sur le bouton Paramètres supplémentaires et sur Numéros de feuille de tabulation, modifiez la valeur du séparateur de liste:

Santa Fee
la source
Ne vous contentez pas de publier un lien vers la réponse, incluez les détails saillants dans la réponse. Si la page ciblée disparaît, la réponse est inutile. De plus, bien que je ne sois pas un expert de Windows, cela ressemble à la réponse de wmz d'il y a trois ans.
blm
0

1.> Changez le format de fichier en .CSV (délimité par des points-virgules)

Pour obtenir le résultat souhaité, nous devons modifier temporairement le paramètre du délimiteur dans les options Excel.

Déplacer vers un fichier -> Options -> Avancé -> Section d'édition

Décochez le paramètre "Utiliser les séparateurs système" et mettez une virgule dans le champ "Séparateur décimal".

Maintenant, enregistrez le fichier au format .CSV et il sera enregistré au format délimité par des points-virgules !!!

user318853
la source
5
Tiré de ashwaniashwin.wordpress.com/2013/04/19/… Veuillez noter que l'attribution est obligatoire.
Arjan
0

Si votre liste de valeurs se trouve dans la colonne A, essayez ceci - Cellule B2 = A1 & ";" & A2 Cellule B3 = B2 & ";" & A3 Copiez la cellule B3 au bas de votre liste. Si vous copiez et collez la dernière cellule de votre liste en tant que valeurs, vous aurez alors votre liste séparée par des points-virgules. Vous pouvez ensuite le copier dans le Bloc-notes, Word ou partout où vous le souhaitez.

phacochère
la source
0

Vous pouvez le faire facilement en 4 étapes avec la fonction de concaténation d'Excel.

  1. Dans votre fichier, ajoutez une colonne de points-virgules où vous vous attendez à ce qu'ils atterrissent dans une exportation .csv.

  2. Commencez une nouvelle colonne à la fin de vos données et dans la première ligne, utilisez la =concatenate()fonction. Assurez-vous de sélectionner toutes les cellules que vous souhaitez voir apparaître dans le fichier final. Votre formule ressemblera à quelque chose=concatenate(A1,A2,A3...)

  3. Copiez et collez la formule résultante dans toutes les lignes de données.

  4. Sélectionnez la colonne entière de formules et Collage spécial -> Valeurs dans la colonne voisine. Vous avez maintenant toutes vos données délimitées par des points-virgules.

Enfin, exportez vers le format de fichier de votre choix. Si vous exportez ce fichier au format .txt sous Windows, vous pouvez simplement changer l'extension du fichier en .csv car les deux sont des formats de texte brut.

Greg Cavanaugh
la source
-3

J'utilise de manière simple: -

  1. Ouvrez le fichier csv (point-virgule) avec le bloc-notes ou Notepad ++.
  2. Recherchez et remplacez (Ctrl + H) du point-virgule (;) à la virgule (,).
  3. Enregistrez et fermez le fichier.
  4. Maintenant, ouvrez le fichier de modification avec Ms-Excel.
vigne
la source
Cela ne fonctionne que si aucune chaîne ne contient un ";" ou "," sinon cela ne générerait pas ce que l'auteur veut réellement.
Ramhound
1
Cela va dans la mauvaise direction. La question demande comment créer un fichier de valeurs séparées par des points-virgules; cette réponse suppose qu'un fichier de valeurs séparées par des points-virgules existe déjà et décrit comment créer un fichier CSV - incorrectement, car il ne prend pas en compte la contrainte clé de la question: à savoir, que les données sont connues pour contenir le délimiteur .
G-Man dit `` Réinstalle Monica '' le