Déplacement de l'en-tête vers la ligne 1Bonjour,
Mon fichier CSV brut est dans un format étrange, ce qui entraîne l'importation du premier point de données dont j'ai besoin en tant qu'en-tête, ce qui n'est pas ce que je veux. J'ai donc créé une nouvelle ligne vide en haut et j'essaie de comprendre comment extraire le nom de la colonne dans la ligne vide avant de renommer l'en-tête ? Toute aide est appréciée !
names default to here(1);
dt=current data table();
For (i=1, i<=2, i++,
Row(1)[i] = Char(Column Name(i));
);
Accès aux donnéesRe : Déplacer l'en-tête vers la ligne 1Je me demande si vous pourriez utiliser Fichier > Importer plusieurs fichiers. La boîte de dialogue en cliquant sur le bouton Paramètres semble concerner un fichier CSV sans tête.
Re : Déplacer l'en-tête vers la ligne 1Ce que je suggère, c'est d'utiliser l'assistant de saisie une fois, puis d'extraire le script qu'il produit, puis d'utiliser ce script pour lire les nombreux fichiers différents.
Re : Déplacer l'en-tête vers la ligne 1Ce script est destiné à convertir plus de 100 fichiers CSV dans un format particulier et à les ajouter tous. J'aimerais donc vraiment que votre première suggestion fonctionne si je le peux. Cliquer sur chaque fichier et modifier les paramètres ne fonctionnera pas car il y en a tellement.
La façon dont j'ai pensé était d'ajouter une nouvelle ligne vide et de remplir les cellules 1 et 2 avec les en-têtes de colonnes, puis de modifier ensuite les noms des colonnes. En fait, j'ai du code fonctionnel pour cela, mais seulement si je l'exécute dans le débogueur. Si je clique simplement sur Exécuter pour tout exécuter en une seule fois, les cellules de la nouvelle ligne restent vides, mais si je l'exécute dans le débogueur (que j'ai initialement ouvert pour essayer de comprendre le problème), le script se termine correctement et les cellules remplissez correctement, donc je ne comprends pas pourquoi.
Names Default To Here( 1 );
Open( "path to csv file" );
dt = Current Data Table();
dt << addRows( 1, atStart );
a = Char( Column Name( 1 ) );
b = Char( Column Name( 2 ) );
Column( 1 )[1] = a;
Column( 2 )[1] = b;
Re : Déplacer l'en-tête vers la ligne 1Vous voudrez peut-être essayer une autre option.
- Cliquez sur Ouvrir
- Accédez au dossier où se trouve le fichier csv
- Cliquez une fois sur le fichier csv que vous souhaitez ouvrir
- Une liste d'options s'affichera, sélectionnez "Données (Utilisation de l'aperçu)"

- Cliquez sur Ouvrir
- Parcourez l'assistant de saisie.Commencez par désélectionner « Le fichier contient des noms de colonnes en ligne : »
Re : Déplacer l'en-tête vers la ligne 1J'ai modifié les paramètres que vous avez mentionnés comme suit :
Noms de colonnes Début( 0 ),
Début des données( 1 ),
Puisque ce fichier csv brut n’a pas du tout d’en-tête. Mais cela ne change pas la façon dont il s'ouvre - la ligne 1 est malheureusement toujours importée comme en-tête.Re : Déplacer l'en-tête vers la ligne 1Vous devriez pouvoir modifier les paramètres pour compenser le format étrange de votre fichier csv.Vous trouverez ci-dessous un script simple qui ouvre un fichier csv et vous pouvez modifier les paramètres Column Names Start() et Data Starts() afin de ne pas vous retrouver avec de mauvais en-têtes ou données.
Open(
"Path to your csv file",
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 1 ) ),
Strip Quotes( 0 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
Ces instructions JSL ont été récupérées en ouvrant simplement un fichier csv, puis en recherchant dans la source en cliquant avec le bouton droit sur le triangle vert devant l'entrée Source dans le panneau Tableaux à gauche de la table de données ouverte.