Extraire cellule B2 dans un fichier nommé celluleA2.txt

LeGhe - 19 juin 2024 à 14:58
brucine Messages postés 15814 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 18 juillet 2024 - 24 juin 2024 à 18:33

Bonjour,

Soit un fichier Excel à 2 colonnes A & B, la colonne A étant un nombre et la colonne B un texte.

A              B
123          xyz

Comment extraire xyz dans un fichier 123.txt ??

Merci Beaucoup,

G.

Windows / Firefox 127.0

A voir également:

6 réponses

DjiDji59430 Messages postés 4083 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 12 juillet 2024 659
Modifié le 19 juin 2024 à 17:11

Bonjour à tous,

Comprend pas!

envoie ton fichier 123.txt et ton fichier excel avec en a1 123 et en b1 xyz et donne quelque part ( ou ?) le resultat attendu. Et avec des explications precises


Crdlmt

Raymond PENTIER Messages postés 58542 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 juillet 2024 17 144
Modifié le 19 juin 2024 à 17:20

Bonjour.

On ne peut pas !

Les fichiers txt ne contiennent pas de fonctions, et ne génèrent donc pas de formules permettant d'importer des données.


En effet je présume que lorsque tu écris "Comment extraire xyz dans un fichier 123.txt" tu veux dire en réalité "Comment importer la donnée xyz dans le fichier 123.txt" ?


Non non non.

J'ai un fichier excel de livres de 2 colonnes (code-barre / Résumé) du type :

A                                   B
9781245781245        blablabla
9781245781246        blobloblo

Il y a 12.000 lignes

J'aimerai extraire le résumé (colonne B donc) dans un fichier .txt.

Donc générer 12.000 fichiers txt du type 9781245781245.txt contenant blablabla, 9781245781246.txt contenant blobloblo, etc.

jee pee Messages postés 39955 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 17 juillet 2024 9 253
Modifié le 19 juin 2024 à 18:32

Bonjour,

Tu devrais enregistrer ton fichier dans Excel en .csv (fichier texte avec séparateur ; ), par exemple livres.csv. Après tu crées un fichier script  de commandes, qui est un fichier texte, qui s'appelle livres.cmd qui contient :

FOR /F "tokens=1,2* delims=;" %%a IN (livres.csv) DO echo %%b >OUT\%%a.txt

Ce script lit chaque ligne du fichier csv et place le résumé dans un fichier de nom codebarre.txt. Faire un dossier OUT au même niveau que les fichiers livres.csv et livres.cmd qui va recevoir tous les fichiers txt créés. Lancer l’exécution du .cmd en cliquant dessus dans l'explorateur.


brucine Messages postés 15814 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 18 juillet 2024 2 192
19 juin 2024 à 19:46

Bonjour,

J'ai fait le même raisonnement sinon que j'ai souvent des mauvaises surprises où la variable est générée avec un espace après, où j'ai supposé qu'il y avait une ligne de titres (skip=1) et où je n'ai pas redirigé vers un dossier en particulier, c'est un détail.

 

@echo off

FOR /F "tokens=1,2 skip=1 delims=;" %%J in ('type "C:\Users\brucine\Desktop\dechets.csv"') DO SET nom=%%J & SET texte=%%K & CALL :PROCESS
GOTO END

:PROCESS
SET nom=%nom:~0,-1%
SET texte=%texte:~0,-1%
ECHO %texte%>%nom%.txt
exit /b

:END
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question

Merci, ces solutions fonctionnent.

Est-il possible de forcer l'encodage en UTF-8 à l'enregistrement ?

Merci encore,

G.

brucine Messages postés 15814 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 18 juillet 2024 2 192
24 juin 2024 à 17:49

Si on veut éviter que le texte soit codé ANSI mais Unicode (c'est en principe de l'UTF8 mais on ne sait jamais), faire précéder la commande ECHO de redirection par CMD /U /C

Alternativement, s'attaquer aux caractères spéciaux qui seraient lus soit dans la console soit dans le fichier CSV avec la page de code appropriée à tester, le plus souvent 65001 ou 1252.

Par exemple mettre en tête de gondole du batch juste après @echo off:

CHCP 65001>NUL

0
jee pee Messages postés 39955 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 17 juillet 2024 9 253
Modifié le 24 juin 2024 à 17:37

Je ne sais pas si en ligne de commande on a de l'utf8. Pour des accents dans les scripts j'utilise

rem code page pour les accents dans le script
chcp 65001> nul

brucine Messages postés 15814 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 18 juillet 2024 2 192
24 juin 2024 à 18:33

Si on veut pinailler jusqu'au bout et qu'il ne s'agit pas seulement de "traduire" des caractères spéciaux mais qu'on a une bonne raison de coder le fichier texte de sortie en UTF avec BOM, il est discuté de savoir si les voies CHCP ou CMD /C /U le rendent, il est prétendu qu'il n'y aurait en batch qu'un contournement un peu acrobatique sans quoi il faut par exemple passer par PowerShell:

https://stackoverflow.com/questions/31771793/write-an-empty-file-with-just-the-utf-8-bom
 

0