Page 3 sur 3

Re: Dimensionner les colonnes d'un fichier .CSV

Publié : jeu. 12/mars/2020 21:29
par omega
Je commençais à perdre espoir et voilà que ... maintenant, d'un seul coup, des solutions toutes fraîches commencent à pleuvoir !
Je n'aurais pas pensé que par VBScript on puisse le faire, sachant que, physiquement, le fichier reste un fichier texte même s'il a l'extension .xls
Moi aussi, je ne le savais pas, je l'apprends maintenant . Merci pour cette précieuse information.
Voilà qui devrait contenter notre ami omega, s'il nous lit !
Pour ça, oui Mindphazer, je te le confirme (et comment !!)

Merci beaucoup à tous

Re: Dimensionner les colonnes d'un fichier .CSV

Publié : ven. 13/mars/2020 12:02
par Mindphazer
Marc56 a écrit : Pour cela le programme génère puis lance un fichier VBScript qui contient en dernier la commande VBS
J'ai testé (rapidement, réunions+++ virus oblige), chez nous l'exécution des VBScripts est bloquée par une stratégie de groupe :mrgreen:

Du coup, à moins d'être administrateur du poste, ça ne marche pas... A savoir...

Re: Dimensionner les colonnes d'un fichier .CSV

Publié : jeu. 26/mars/2020 17:21
par Fig
On peut générer un vrai fichier excel avec Pb en utilisant COMatePLUS.
Ça permet de quasiment tout faire.

Re: Dimensionner les colonnes d'un fichier .CSV

Publié : sam. 28/mars/2020 9:31
par Marc56
Fig a écrit :On peut générer un vrai fichier excel avec Pb en utilisant COMatePLUS.
Ça permet de quasiment tout faire.
Par contre, à moins que je ne me trompe, cela nécessite qu'une version d'Excel soit présente sur le PC. ComatePlus ne faisant que "piloter" ce dernier (l'objet classeur). Donc pas utilisable par exemple pour une application sur un serveur Linux.

Re: Dimensionner les colonnes d'un fichier .CSV

Publié : mer. 01/avr./2020 15:27
par G-Rom
Salut, j'ai déjà eu à faire pour un de mes logiciels ce que tu cherches à faire, j'utilisait des outils libre , comme libre office en ligne de commande pour sortir n'importe quel format compatible.
c'était très simple, un simple appel avec runprogram et les paramètres qui vont bien font l'affaire. Tu devras juste embarquer une copie des outils avec ton programme, mais gain de temps énorme.

Re: Dimensionner les colonnes d'un fichier .CSV

Publié : mer. 08/avr./2020 8:44
par kernadec
bjr

peut être cette simple ligne avec la fonction Space() pour formater un fichier.csv à l'écriture

[Réédit] code qui fonctionne pour l' importation de colonne formatée d'un fichier.csv avec Libre Office Calc

Cordialement

Code : Tout sélectionner

;##################### Formatage de champs pour les fichiers csv                  ######################
;##################### importation Excel [menu] \ [Données] \ [Fichier texte] \ [UTF] etc.. ############

#col1 = 12
#col2 = 5
#col3 = 8
#col4 = 2
#col5 = 10

Dim a$(10)
Dim c$(10)

a$(1)= "poire"      : c$(1)= "3.00"
a$(2)= "pomme"      : c$(2)= "2.60"
a$(3)= "mandarine"  : c$(3)= "2.90"
a$(4)= "kiwi"       : c$(4)= "5.00"
a$(5)= "raisin"     : c$(5)= "6.00"
a$(6)= "pommelos"   : c$(6)= "3.00"

b$= "Prix"
d$= "E"
e$= "le Kilo"

Chemin$ = GetCurrentDirectory()

Fichier$ = "Fichier csv avec Colonnes Préformatées.csv"

ClearClipboard()

If CreateFile(0, Chemin$ + Fichier$,#PB_UTF8)
  
  For i = 1 To 6
    
    texte$ = a$(i) + Space(#col1 - Len(a$(i))) + "," + b$ + Space(#col2 - Len(b$)) + "," + Space(#col3 - Len(c$(i))) + c$(i) + "," + d$ + Space(#col4 - Len(d$))  + "," + e$ + Space(#col5 - Len(e$))
    WriteStringN(0,texte$,#PB_UTF8) 
    
  ; copie les champs vers presse papier
    SetClipboardText(GetClipboardText() + texte$ + Chr(13)) 
    
  Next i
  CloseFile(0)
Else
  MessageRequester("Information "," Fichier Inconnu? ")
EndIf
End
REgedit
[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options]
faites un clic droit sur le côté droit et allez dans Nouveau> DWORD
nommez l'élément DefaultCPG et enregistrez
faites un clic droit sur DefaultCPG et choisissez Modifier
définir la base en décimal
entrez le code affiché dans l'assistant Excel (pour UTF-8, c'est 65001)
cliquez sur OK.

Excel est maintenant en mode "Windows ANSI" qui accepte les données csv avec colonnes délimitées

Re: Dimensionner les colonnes d'un fichier .CSV

Publié : mer. 08/avr./2020 11:09
par Mindphazer
Bonjour kernadec
Ca ne changera rien, quel que soit le nombre de caractères de chaque colonne du fichier .csv, Excel l'ouvrira et appliquera la largeur de colonnes par défaut

Re: Dimensionner les colonnes d'un fichier .CSV

Publié : mer. 08/avr./2020 12:33
par kernadec
bjr Mindphazer

Je sais pas avec excel, mais avec Libre Office Calc ça marche j'ai testé :wink:
ensuite tu sauve en xlsx et tu peux probablement l'utiliser sur Excel
avec les colonnes formatées :mrgreen:

Cordialerment
ps: ou peut être autre une piste rechercher une macro d' importation CSV UTF8
https://forum.excel-pratique.com/viewtopic.php?t=112329

Configuration d'Excel menu données avec le mode texte comme indiqué et unicode utf8,
j 'ai réussi a avoir les colonnes formatées utilisés avec space() du fichier.csv qui s'est affiché comme prévu.
https://exceller-avec-la-bureautique.co ... csv-excel/