générer / ouvrir CSV à partir du fichier console est dans un mauvais format erreur

J'écris un fichier séparé par des virgules en utilisant une application console, et que D'utiliser le processus pour ouvrir le fichier. C'est un moyen rapide et sale de vider les résultats d'une requête dans excel.

Pour un certain temps, cela a bien fonctionné, mais dernièrement, j'ai commencé à me "Le fichier que vous essayez d'ouvrir " blah.csv', est dans un format différent de celui spécifié par l'extension de fichier".

Et qu'après avoir cliqué sur " Oui "

Excel a détecté que blablabla.csv est un fichier SYLK, mais ne peut pas le charger. Soit le fichier contient des erreurs, soit il ne s'agit pas d'un format de fichier SYLK. Cliquez sur OK pour essayer d'ouvrir le fichier dans un format différent.

Appuyer sur OK l'ouvre et s'affiche correctement.

Je vois quelques solutions pour cela dans le monde web avec l'ajout d'en-tête content-disposition, mais comme j'utilise un processus pour l'ouvrir, Je ne peux pas appliquer ce correctif.

Mon code pour ouvrir le fichier:

ProcessStartInfo info = new ProcessStartInfo();
info.FileName = filePath;
info.UseShellExecute = true;
Process.Start(info);

Si j'ouvre le fichier dans Notepad++ et montre tous les caractères, il montre juste comme CSV régulier avec la ligne CR LF terminer.

Après une enquête, il semble que la ligne de titres déclenche l'erreur. Si j'écris simplement une ligne vide avant les titres, l'erreur disparaît. les titres ressemblent à ceci:

- Tête 1,en-tête 2,heading3 CRLF

27
demandé sur Sonic Soul 2010-11-26 18:26:43

4 réponses

Jetez un oeil ici: http://support.microsoft.com/kb/323626

Il semble avoir ID comme les deux premiers caractères sur la ligne d'en - tête est le problème-comportement assez bizarre D'Excel à mon avis.

57
répondu John Pickup 2010-11-26 16:54:57

Le CSV commence par les deux caractères ID. Si vous entourez les caractères avec des guillemets doubles, cela devrait fonctionner correctement.

5
répondu Jeremy 2012-01-17 20:26:01

(édité) J'ai eu un problème similaire - je recevais exactement la même erreur, mais dans mon cas, cela s'était soudainement produit après des mois d'utilisation fréquente. Je me suis demandé si le problème est vraiment le titre de la colonne "ID", la solution Microsofts n'explique pas pourquoi, comme l'a déclaré le PO," pendant un certain temps, cela a bien fonctionné " et est devenu un problème.

J'ai trouvé dans mon scénario qu'il y avait des données erronées provenant d'un système en amont où une virgule avait été ajoutée dans le prénom de quelqu'un, et cela invalidait le .fichier csv. Cela a causé l'erreur 'file is in wrong format' mais m'a envoyé sur le mauvais chemin avec le '[filename] est un fichier SYLK, mais ne peut pas le charger '

J'espère que cela pourrait aider quelqu'un d'autre un jour.

2
répondu AgentNaz 2015-03-23 16:32:21

Le format de fichier SYLK n'est pas valide erreur se produit lorsque le fichier CSV a deux premiers caractères sont en majuscules I et D. Il peut être résolu par les étapes suivantes: Ouvrez le fichier dans le bloc-notes et appuyez sur la touche apostrophe (’) avant le 1er caractère. Enregistrez le fichier et rouvrez MS Excel.

0
répondu Caroline Bennett 2016-08-30 06:08:15