Dimensionner les colonnes d'un fichier .CSV

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
omega
Messages : 626
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Dimensionner les colonnes d'un fichier .CSV

Message 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
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
Mindphazer
Messages : 639
Inscription : mer. 24/août/2005 10:42

Re: Dimensionner les colonnes d'un fichier .CSV

Message 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...
Bureau : Win10 64bits
Maison : Macbook Pro M1 14" SSD 512 Go / Ram 16 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Dimensionner les colonnes d'un fichier .CSV

Message par Fig »

On peut générer un vrai fichier excel avec Pb en utilisant COMatePLUS.
Ça permet de quasiment tout faire.
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Marc56
Messages : 2148
Inscription : sam. 08/févr./2014 15:19

Re: Dimensionner les colonnes d'un fichier .CSV

Message 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.
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Dimensionner les colonnes d'un fichier .CSV

Message 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.
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Dimensionner les colonnes d'un fichier .CSV

Message 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
Dernière modification par kernadec le ven. 10/avr./2020 5:59, modifié 7 fois.
Avatar de l’utilisateur
Mindphazer
Messages : 639
Inscription : mer. 24/août/2005 10:42

Re: Dimensionner les colonnes d'un fichier .CSV

Message 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
Bureau : Win10 64bits
Maison : Macbook Pro M1 14" SSD 512 Go / Ram 16 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Dimensionner les colonnes d'un fichier .CSV

Message 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/
Répondre