Création fichier .CSV

Résolu
Bien les bonsoir,

je m'excuse de vous importuner encore une fois mais j'ai une galère bien énervante...

je m'explique je travaille sur un programme Java, qui à un moment donné doit créer un fichier .CSV, ça je le fait sans problème, seulement quand j'ouvre ce fichier avec excel, il me dit qu'il s'agit d'un fichier .slk !! je comprend pas du tout pourquoi..

HELP ! :(

6 réponses

  1. oui ça je le sais car par exemple sous linux les fichier n'ont pas d'extension à proprement parler..

    quand j'ouvre mon fichier csv, j'ai un message me disant : Excel detecle que le fichier est un fichier SYLK , mais ne peux pas le charger. le fichier contient des erreurs ou n'est pas au format SYLK
    1. Modérateur
      Ok, je viens de chercher sur internet et j'ai trouvé un truc intéressant.

      Si les deux premiers caractères de ton fichier sont
      ID
      alors Excel essaiera de l'ouvrir en Sylk.
      Si c'est bien ça le problème tu devrais le remplacer par
      "ID"


      Remarque : c'est un problème lié à Excel, un autre éditeur de fichiers CSV pourrait l'ouvrir correctement.
  2. Modérateur
    Bonjour,

    Ton fichier doit porter l'extension .csv pour être ouvert comme tel.

    À quoi ressemble ton fichier ?

    Un fichier CSV devrait ressembler à ceci (si tu l'ouvres avec le bloc-notes)

    A1,B1,C1
    A2,B2,C2
    A3,B3,C3

    En France on aura souvent
    ;
    au lieu de
    ,
    à cause des nombres à virgules.
    La confiance n'exclut pas le contrôle
    1. Et bien tu vas rire, mais mon fichier est vide.. justement quand 'je veux écrire dedans, j'utilise le ; comme séparateur mais cela ne fonctionne pas dans le mesure ou le fichier crée n'est pas un .CSV mais un .SLK voici le code qui crée le fichier :

      File_Path = "C:\\Users\\"+UserName+"\\Documents\\NetworkStorage\\DbOutput.csv";
      
      File Exp_File = new File(File_Path);
      
      Exp_File.createNewFile();
      
      
      


      le fichier se crée bien pourtant..
    2. justement j'ai utilisé ton code, mais le problème étant c'est que le fichier crée ne fait que porter le nom de ".csv" sinon va savoir pourquoi c'est un ".slk" donc le fait de faire :

      FileWriter.append("Chaine");
      FileWriter.append(';');
      


      ne fonctionne pas, cela me met juste dans la première cellule A1 "Chaine;" il ne prend pas en compte le séparateur..
      1. Modérateur
        Si tu as "Chaine;" alors c'est que le code fonctionne, le contenu du fichier est correct et correspond bien au contenu d'un fichier CSV.

        Donc si Excel ou n'importe quel autre logiciel ouvre bien ce fichier en mode CSV alors il interprétera bien les
        ;
        comme séparateur de colonnes.

        Reste à savoir ton histoire de .slk, je n'ai jamais vu cela auparavant, mais cela ne remets pas en cause le code ou le format du fichier.
    3. je suis bien d'accord, le code d'écriture n'est en aucun cas à remettre en cause, c'est la création du fichier qui à mon sens prose problème...pourquoi excel ouvre ce fichier comme un .slk?.. je me suis renseigné et d'après ce que j'ai pu lire il s'agit de l'abréviation de SYLK soit Symbolic Link..un type de fichier mis en place par Microsoft pour faire des échanges de données...

      mais j'ai jamais demandé à créer un tel fichier moi..!!
      1. Modérateur
        L'extension du fichier c'est toi qui la définit dans ton code. Donc si tu as
        File file = new File("myFile.csv");
        alors ton fichier aura une extension .csv

        Remarque : une extension de fichier est juste une indication pour Windows, cela ne sert d'ailleurs à rien sur d'autres systèmes d'exploitation.

        Ce qui fait que les fichiers .csv sont associés au type de données Sylk, c'est la configuration de ton ordinateur. Voir éventuellement Changer le programme d'ouverture d'une extension par défaut pour modifier la configuration et associer les fichiers .csv au programme Excel.