6
votes

Écrivez l'onglet Dossier CSV séparé dans C #

Je développe actuellement une application en C # où j'ai besoin d'écrire un fichier CSV séparé par onglet des données qui extraites d'une base de données MySQL. La récupération de la base de données fonctionne bien.

Le problème que j'ai d'avoir écrit le fichier. Entre chaque variable que j'écris, j'utilise le \ T que je pensais mettre un onglet dans le CSV, donc lors de l'ouverture dans Excel, chaque variable sera dans sa propre cellule.

Cependant, pour une raison quelconque, cela ne fait pas cela, cela écrit simplement la ligne entière comme une longue chaîne. Vous trouverez ci-dessous un exemple du code que j'aime que j'ai écrit: xxx

merci pour votre aide avec ce problème.

c#

0 commentaires

3 Réponses :


1
votes

Vous devez utiliser l'assistant d'importation de texte: données / du texte. De là, vous pouvez spécifier votre délimiteur à un onglet.


2 commentaires

Je ne sais pas comment cela fonctionnerait. L'objectif du fichier CSV étant écrit est de permettre à l'utilisateur de pouvoir sauvegarder ses données de la base de données au fichier CSV. Par conséquent, mon programme lit via la ligne de base de données par ligne pour écrire les données dans le fichier CSV.


Étant donné que votre fichier .csv n'est pas vraiment "virgule" ", dites d'une manière d'une manière ou d'une autre, dites à Excel que votre délimiteur est en fait un" onglet ". Si vous faites cela, vous verrez vos importations de fichiers correctement. Au lieu de délimiter par l'onglet, essayez de délimiter par une virgule.



2
votes

Le problème est votre codage.
Vous n'exprimez pas votre textwriter code> instanciation, mais il devrait ressembler à ceci comme suit:

TextWriter tw = new Stream(filename, false, Encoding.ASCII);  


1 commentaires

Aussi, soyez prudent avec la chose de CSV-Excel, en particulier avec les numéros de compte bancaire, car si un numéro dépasse 15 chiffres, Excel traitera / le montrera comme s'il s'agissait d'une notation scientifique (exponentielle).



6
votes

Le format est correct, un CSV s'attend à ce que le fichier soit séparé par la virgule. Lors de la sauvegarde d'un fichier délimité à l'onglet, une extension TXT est généralement utilisée (ou certaines personnes sauvegardent en tant que .tsv) etc.

Si vous regardez la sauvegarde sous forme d'options dans Excel, l'option est du texte (onglet délimité) .txt

Si j'ouvre la sortie générée par votre code d'échantillon (encombrement dans les données), tout se charge dans Excel 2007 comme vous l'attendez.


1 commentaires

+1 Je regardais cette question en pensant: "Il n'ya rien de mal à ce rendement; il doit s'agir de la manière dont il est chargé", mais a totalement manqué que la question mentionne le fichier CSV encore séparé avec l'onglet.