Aller au contenu

convertisseur XLS <-> CSV


(gile)

Messages recommandés

Salut,

 

Suite à ces tests, j'ai essayé de faire quelque chose d'un peu plus utile pour continuer mes essais avec les différentes version d'Excel.

 

Il s'agit d'un petit convertisseur de fichier Excel en fichier CSV ou, inversement, de fichier CSV ou TXT en fichier Excel.

Pour Excel 2007, possibilité de choisir l'extension .xlsx pour le fichier source (déroulant de la boite de dialogue "Sélectionner le fichier à convertir" ou de la spécifier pour le fichier cible en modifiant le texte de la case "Fichier cible".

 

Les fichiers ExcelStreamLateBinding.dll et ExcelCsvConvertor.exe doivent être dans le même répertoire.

 

Télécharger ConvertXlsCsv2.zip (nouvelle version)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

ça fonctionne bien.

Néanmoins une interrogation sur le filtre des extensions.

 

http://www.premiumwanadoo.com/technaulogis/cadxp/gilles_01.jpg

 

xlsx correspond à 2003 ?

 

une autre interrogation plus perso:

que faut-il installer pour se lancer dans cette programmation?

J' avais essayé il y a quelques temps et il me manquait toujours des éléments...

Si tu as une liste de ce qu'il faut mettre en place, cela m' interresserait.

 

merci

 

 

[Edité le 19/12/2009 par nazemrap]

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

nazemrap,

 

Pour xlsx, ce n'est pas clair, je voulais dire "postérieur à 2003".

Pour .NET, j'ai commencé un sujet sur AcadLabs (le nouveau site de didier).

 

Merci Lilian pour ce retour.

Je suis content que ça marche chez toit alors que ça ne marchait pas avant.

Je me permet de dire que ça marche parce qu'il me semble que les dysfonctionnements que tu as eu sont dus à un fichier CSV curieux et ou à des mauvais choix dans les options.

 

Un fichier CSV est fichier texte (ascii) de données dans lequel les données sont séparées sur chaque ligne par un séparateur (Comma Separated Datas).

 

Comme tout fichier texte, un fichier CSV peut s'ouvrir avec le bloc-note et y être lisible. Ce n'est pas le cas du tien (je ne sais pas comment tu l'as enregistré).

il est normal que les formules ne soient pas conservées.

Pour les caractères spéciaux, c'est une question de codage ascii vs unicode, je vais voir si je peux faire quelque chose.

 

Si, dans la plupart des pays le séparateur est la virgule, pour la France (et certains autres pays européens) Windows configure par défaut le "Séparateur des listes" avec un point virgules puisque la virgule est le séparateur décimal par défaut.

Le programme récupère ce paramètre sur le poste sur lequel il est exécuté et le propose comme séparateur par défaut. S'il te proposait le point-virgule c'est que c'est celui là qui est paramétré sur ton poste*.

 

Pour ton fichier TXT le séparateur est la tabulation (les colonnes sont bien alignées) et pas l'espace.

 

En tous cas, encore merci.

 

 

* on peut modifier ces paramètres depuis le Panneau de configuration Windows > Options régionales et linguistiques > Personnaliser

 

 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Ok Gilles,

 

Merci pour ces compléments d'informations !

 

Je suis content que ça marche chez toit alors que ça ne marchait pas avant.

 

Très délicat de ta part et t'en remercie,;)

 

Pour le '.CSV," j'ai copié le fichier Excel "original.xls" et uniquement changé l'extension, c'est donc pour ça surement que j'ai des trucs "bizarre".

 

Dans le panneau de configuration Windows > Options régionales et linguistiques > Personnaliser, j'ai le point comme séparateur car j'utilise une "vieille" application de calculs topo qui nécessite le point pour la création des fichiers de sortie.

 

Est-ce un pb pour utiliser "ExcelCsvConvertor" ?

 

Sinon, je changerai la config quand j'aurai le besoin,...

 

que les dysfonctionnements que tu as eu sont dus à un fichier CSV curieux et ou à des mauvais choix dans les options.

 

Si c'est le cas, j'espère ne pas t'avoir fait perdre ton tps,... :cool:

 

il est normal que les formules ne soient pas conservées.

 

Vu ! (Ce qui peut être très pratique pour ne pas tout donner aux étudiants,... :P => J'en voit déjà qui vont râler,.. :( )

 

Pour ton fichier TXT le séparateur est la tabulation (les colonnes sont bien alignées) et pas l'espace.

 

Ok !

 

On utilise l'espace que si il y a un et un seul espace alors ? (Remarque, je crois que "la moulinette" de transfert de données terrain sur covadis fonctionne de la même façon,...)

 

En tous cas, encore merci.

 

Tu rigoles ?!!, merci à toi, :P

 

Je refais les tests depuis tes remarques et reviens,

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Seconde batterie de tests,

 

Excel vers .CSV, pas de pb particulier,si ce n'est les caractères spéciaux

 

.CSV vers Excel, j'ai donc récupéré le fichier ".CSV" généré par la première application (Excel vers .CSV) et là, idem l'original sans la finalisation (habillage des cellules). Même les caractères spéciaux du .CSV redeviennent "normals" en .XLS !!

 

Par contre, toujours des difficultés sur le .TXT !

 

J'ai paramétrée par défaut les options régionales (imprime écran dans le dossier joint) et mes tableaux en .XLS ne sont toujours pas ok ! (La ligne est généré entièrement dans une cellule).

 

Peut être une erreur de ma part si cela fonctionne chez toi,..

 

Les fichiers,

 

 

 

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Dans le panneau de configuration Windows > Options régionales et linguistiques > Personnaliser, j'ai le point comme séparateur car j'utilise une "vieille" application de calculs topo qui nécessite le point pour la création des fichiers de sortie.

 

Le point comme séparateur de donnée dans les listes ?!

Tu dois confondre avec le séparateur décimal.

 

Pour le "Séparateur des listes", Windows ne propose le choix qu'entre la virgule et le point-virgule.

 

La chose à éviter absolument est d'avoir le même signe comme séparateur décimal et séparateur de données (on comprend facilement pourquoi).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Et ma config d'options régionales c'est ok, d'après toi ?

 

J'ai beau ressayé, toujours pareil ! (Sur l'image ci-dessous, j'ai sélectionné la cellule A1)

 

http://free0.hiboox.com/images/5109/b30a425c4127a3443c7390a41c367169.jpg

border="0" >

 

 

C'est normal d'avoir un point au lieu d'une virgule pour les décimales ?

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Effectivement, ce fichier TXT est très bizarrement foutu, les données sont séparées par un nombre variable d'espaces !!!

Ceci le rend difficilement exploitable.

 

Le fichier txt avec séparateur Tabulation (c'est le format quand on enregistre un fichier XLS en TXT)

 

En ce qui concerne le paramétrage des séparateurs, j'ai (comme beaucoup) remplacé la virgule par le point (ne serait-ce que pour pouvoir se servir du pavé numérique dans Excel, et avoir le même format pour les nombres dans Excel et dans AutoCAD).

Pour le séparateur de données, tout dépend d'avec qui on échange des fichiers CSV.

 

J'ai modifié la version (premier message) le problème des caractères accentués semble résolu.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Effectivement, ce fichier TXT est très bizarrement foutu,

 

C'est un exemple de points de levé topographique avec codification (les symboles ponctuels et linéaires se dessinent depuis le terrain via une codification et après passage à "la moulinette" sur covadis, le plan est généré,...

 

sont séparées par un nombre variable d'espaces !!!

 

Ce qui sera très souvent le cas pour un fichier de points topographiques (fonction de la position en coordonnées des différents points => ici, en Y à 1000 m, ainsi que le nom du point => ici à P.100, plus le nom de stations de mesures en fin de fichier qui peuvent démarrer à S.1000, comme ici)

 

Pour covadis, c'est un fichier de point colonné

 

http://free0.hiboox.com/images/5109/7e21ac3c6a2232215bce1ead371de2a3.jpg

 

Ce qui donne => (Après Modélisation Numérique du Terrain et vue sous orbite)

 

http://free0.hiboox.com/images/5109/e605d62b541c562941310558cb28f8bc.jpg

 

En ce qui concerne le paramétrage des séparateurs,

 

Tu parles ici du symbole décimal ?

 

Car c'est également comme ça que je suis réglé d'habitude,.. Je l'avais modifié pour voir si il y avait un lien avec la génération du .CSV depuis le .TXT,...

 

Pour le séparateur de données, tout dépend d'avec qui on échange des fichiers CSV.

 

En réalité, je n'ai jamais ce besoin,...(Qui et quand pourrait-on en avoir besoin selon toi ? Sur d'autres logiciels ? Un peu comme le .dxf pour les fichiers dessin ?)

 

J'ai modifié la version (premier message) le problème des caractères accentués semble résolu.

 

J'ai généré le fichier .CSV depuis un fichier Excel, puis retransformation en EXcel, et c'est là maintenant qu'il y à un pb de reconnaissance des caractères,..

 

J'ai refais de nouveaux tests en .txt depuis un exemple dis "séparateur" pour covadis (On pourra noter que c'est le même que précédemment avec uniquement un espace entre les données de lignes,....)=>

 

Le tout depuis ExcelCsvConvertor =>

 

Généré Tabulation => Même pb que les deux premiers tests (Donc ce n'est toujours pas ce choix qu'il faille faire pour ce genre d'ordonnancement des informations, du moins dans le cas d'un fichier de points topos,...)

 

Par curiosité, option point-virgule => Idem ci-dessus

 

Par curiosité, option virgule => Idem ci-dessus

 

Option espace depuis le convertisseur => Nickel Chrome ! :D

 

Alors espace quand il n'y a qu'un espace et non tabulation du coup (Comme le premier .TXT testé )!!!

 

Les fichiers tests3

 

Bien sûr, mes tests sont fonction des données que je suis censé recueillir de part mon métier, mais je suppose qu'il existe encore plein de façon d'ordonner des données depuis un fichier .TXT (ou généré depuis un autre logiciel,..)

 

Par curiosité, un autre format généré par covadis en .txt => format "Topojis", je te laisses découvrir,...

 

C'est ici le format "virgule" qui génére le mieux le fichier ".xls", ???!!! :exclam:

 

Bon, pour un topographe, le tout est de le savoir,... :P

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

En relisant tes remarques,

 

Le programme récupère ce paramètre sur le poste sur lequel il est exécuté et le propose comme séparateur par défaut.

 

Ce n'est pas le cas avec les trois formats ".TXT" que j'ai testé,... :exclam:

 

Résumons pour les collègues topographe ce que j'obtiens depuis chez moi (Merci de confirmer par d'autres tests, ;) )

 

(dans ExcelCsvConvertor.exe depuis des fichiers ".TXT")

 

Format séparateur => Option Espace

 

Format Topojis => Option Virgule

 

Format colonné => Option Espace, mais le fichier ".xls" n'est pas tip-top (a retravailler, le mieux est d'éviter ce format !!!)

 

 

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Quand je dis : "Le programme récupère ce paramètre sur le poste sur lequel il est exécuté et le propose comme séparateur par défaut." je parle du "Séparateur de liste" configuré dans les options régionales de Windows.

Ce séparateur est celui qu'utilise Excel quand on enregistre une feuille Excel en fichier CSV, mais ne concerne pas les fichiers txt.

Par défaut Excel propose la tabulation comme séparateur quand on enregistre une feuille Excel en fichier TXT.

 

Le convertisseur que j'ai fait, propose comme séparateur pour les fichier source CSV le choix entre la virgule ou le point-virgule avec, coché par défaut, l'option paramétrée sur le poste. L'utilisateur pouvant cocher l'autre bouton si le fichier CSV a été créé sur un autre poste paramétré différemment.

 

Pour les fichier TXT, comme tu le dis toi même, il n'y a pas de règle, le convertisseur offre donc le choix entre 4 séparateurs. C'est à l'utilisateur de savoir comment est fait le fichier TXT à convertir. Dans ce cas, le bouton coché par défaut reste le même qu'avec les fichiers CSV puisqu'il n'y a pas de format paramétrable dans Windows pour ce type de fichier.

 

Petite remarque sur la description des formats générés par Covadis que tu donnes.

 

Format Séparateur : le fichier TXT est peut-être difficile à lire mais il reste facilement exploitable par d'autre programmes ou directement par Excel (ouvrir Excel, puis ouvrir le fichier TXT en spécifiant l'espace comme séparateur.

 

Format Topojis Idem ci-dessus et doit, en plus, pouvoir être directement renommé en CSV (en changeant l'extension) à condition que le "Séparateur des listes" des options régionales soit la virgule.

 

Format colonné : n'offre que l'intérêt d'essayer de rendre le fichier plus lisible, la conversion ou l'importation dans Excel donnera toujours les résultats que tu as eu (à moins de faire un programme spécifique qui considèrerait un nombre indéfini d'espaces come un unique séparateur.

 

Ce convertisseur n'est pas d'un très grand intérêt pour ce qu'il fait : il ne fait pas plus que ce que fait Excel qunad on ouvre un fichier CSV ou TXT et qu'on l'enregistre en XLS(X) ou, inversement, quand on enregistre un fichier XLS sous TXT ou CSV.

L'intérêt pour moi est de tester le fonctionnement de ExcelStreamLateBinding.dll sur différentes version d'Excel sans imposer la création de fichiers sur C:, ce qui semble avoir généré des erreurs avec les test faits ici.

 

J'ai modifié le fichier en téléchargement, les problèmes liés aux caractères spéciaux semblent résolus dans les 2 sens.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

 

Salut Gilles,

 

Merci encore pour ces explications,

 

ormat Séparateur : le fichier TXT est peut-être difficile à lire mais il reste facilement exploitable par d'autre programmes ou directement par Excel (ouvrir Excel, puis ouvrir le fichier TXT en spécifiant l'espace comme séparateur.

 

Quand j'ai besoin de retravailler un fichier, c'est comme cela que je fais (avant le passage à "la moulinette" sur covadis,...)

 

Format Topojis Idem ci-dessus et doit, en plus, pouvoir être directement renommé en CSV (en changeant l'extension) à condition que le "Séparateur des listes" des options régionales soit la virgule.

 

Exact ! Information qui peut s'avérer utile,

 

L'intérêt pour moi est de tester le fonctionnement de ExcelStreamLateBinding.dll sur différentes version d'Excel sans imposer la création de fichiers sur C:

 

Oui, j'avais cru comprendre ça sur le post que tu pointes.

 

Mes différents tests essayent de t'aider à voir les petits bugs qu'il pourrait rester et j'espère que c'est en partie le cas, ;)

 

Ce post à aussi eu l'intérêt (du moins pour moi !) de mieux comprendre le passage d'un format à l'autre et l'intérêt des configs à adapter dans les options régionales.

 

Mais, je pense que même comme ça, ExcelCsvConvertor.exe peut rendre des services,...

 

Merci encore Gilles,

 

EDIT: En effet, le passage de CSV à EXcel et inversement ne pose plus de pb sur les caractères spéciaux, :P

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

coucou

 

çà y est je me décide à intervenir :o

je suis cette discussion depuis le début

et il me semble qu'elle dérive notoirement.

est-ce pour insérer des points dans un dwg

ou un cas d'études des fichiers Excel ?

 

de quoi parle-t'on ?

quel est la finalité du programme ?

j'ai un petit peu perdu pied depuis le message originel, pardon.

 

je m'étonne de ce que tu dis (giles) au sujet du séparateur décimal

Excel utilise TOUJOURS le signe point du pavé numérique pour séparer les décimales

si l'option "virgule" est sélectionnée dans les options régionales

il en met une sinon il met un point, mais la touche utilisée est la même dans les deux cas.

la touche "virgule" n'est jamais utilisée en tant que telle.

 

et quant à Lili2006, je ne comprends pas autre chose, l'image que tu montres derrière l'insertion de points

laisse croire que le MNT est créé, il n'en est rien que je sache !

et au sujet de Topojis je suis dubitatif quant à son utilisation en 2009, voire 2010 bientôt.

à ce sujet, je le regrette mais 99% des fichiers traités les topos sont directement extraits des théodolites,

les rares cas qui y dérogent sont les calculs de polygonales d'appui,

et dans le cas de ces fichiers chaque constructeur a son format natif,

on connaît bien les GSI de Leica, mais les Trimble sont différents,

au même titre que les Topcon qui sont encore différents.

 

je vous prie d'excuser mon intervention, mais c'est pour la "lisibilité" du forum

 

amicalement

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Salut Didier,

 

et quant à Lili2006, je ne comprends pas autre chose, l'image que tu montres derrière l'insertion de points

laisse croire que le MNT est créé, il n'en est rien que je sache !

 

Ben si, pourquoi ?

 

Et de tous temps !

 

Pourquoi pas chez toi ?

 

Mais, non, je bague !!!

 

Tu as tout à fait raison ,entre les deux, il y a la modélisation du terrain et de son socle et une orbite 3d pour la visualisation,...

 

J'ai mis cette image, car je l'avais déjà sous le coude pour un cours sur la modélisation justement,...

 

Normalement, juste après le passage à "la moulinette", on obtient ça =>

 

http://free0.hiboox.com/images/5109/cbffa3e6071b36fb280d3788a3a0c5b5.jpg

 

Mais cette image ne parle pas trop pour des "non spécialistes",....

 

Bon dimanche,

 

PS: J'ai édité le message en question

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Salut didier,

 

Oui, comme souvent, le sujet a dérivé.

 

Comme dit plus haut, mon propos est plutôt de tester une bibliothèque de classe .NET pour écrire et lire des fichiers Excel.

J'avais fait un petit exe pour faire les tests mais comme me l'a fait très justement remarquer bonuscad, il imposait l'écriture dans C: ce qui pouvait provoquer des erreurs selon les autorisations sur le poste et faussait donc les résultat du test.

J'ai donc écrit ce petit programme de conversion (sans grande utilité peut-être) pour que le choix du chemin du fichier généré n'interfère plus dans le test.

 

Sa finalité (outre mon intérêt personnel décrit ci dessus) est juste de générer un fichier CSV depuis un fichier XLS(X) ou un fichier XLS(X) depuis un fichier CSV ou TXT avec séparateur.

 

Concernant le point ou la virgule comme séparateur décimal, je me suis effectivement trompé dans mes explications. Mais je sais avoir eu besoin de configurer Windows pour que le point remplace la virgule et je ne me souviens plus exactement pourquoi...

Peut être un problème de compatibilité avec AutoCAD :

Si le séparateur est la virgule, quand on fait une extraction d'attributs vers un fichier Excel, les données numériques (nombres réels) des valeurs d'attributs seront vues par Excel comme des chaines (impossibilité d'utiliser les formules arithmétiques).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

coucou

 

je suis maintes fois passé par cette option,

à savoir de n'avoir pas de vraie finalité hormis l'intérêt personnel,

je te comprends d'autant mieux.

 

je n'ai pas vraiment travaillé sur C# par manque de temps.

je le regrette.

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Gile

 

Marche nickel chez moi alors que le premier test n'arrivait pas au bout.

Je pense que cet outil peut être pratique comme le dit Lilli pour la génération d'un mnt sous mnt ou 'linsertion de points type bloc sous Autocad. en fait plusieurs applications sont possibles....

Bon courage pour la suite.

 

John.

Lien vers le commentaire
Partager sur d’autres sites

Merci à vous.

Tout ça semble vouloir dire que mon ExcelStreamLateBinding.dll fonctionne indépendamment de la version d'Excel installée. Je vais essayer de la peaufiner.

 

Peut-être de nouvelles fonctions LISP (XlOpen, XlReadLine, XlWriteLine, XlClose) pour Noël...

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité