Aligner un texte en colonnes
Collez « name,age,city », « Alice,30,NY » et « Bob,25,Los Angeles » et obtenez trois colonnes nettes de 5, 3 et 11 caractères, séparées par deux espaces et lisibles dans tout affichage à chasse fixe. Sans tableur. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- name,age,city Alice,30,NY Bob,25,Los Angeles
- Délimiteur
- ,
- Aligner
- Left
- Gap
- 2
- Lignes
- 3
- Colonnes
- 3
- Largeurs des colonnes
- 5, 3, 11
- Nombre de lignes
- 3
Les collages tabulaires désordonnés —exports CSV aux longueurs irrégulières, journaux collés avec des pipes ou listes à tabulations saisies à la main— sont difficiles à parcourir tant que chaque colonne n’est pas alignée. Cet outil prend un texte multiligne, découpe chaque ligne selon le délimiteur choisi, mesure la valeur la plus large de chaque colonne et remplit chaque cellule pour que le tableau se lise clairement en police monospacée. Vous contrôlez l’alignement (gauche, droite ou centre), l’écart d’espaces entre colonnes et le fait de rogner ou non les champs avant la mesure. Aucun réseau dans le moteur, aucun modèle, aucune dépendance à l’horloge : des entrées identiques produisent toujours la même sortie alignée et les mêmes métadonnées de largeurs de colonnes pour les tests et les pipelines.
Comment fonctionne l’alignement des colonnes sur un texte délimité
L’alignement des colonnes est un problème classique de mise en page à largeur fixe : traitez chaque ligne comme une rangée de champs, déterminez la largeur nécessaire pour la cellule la plus longue de chaque colonne, puis rembourrez chaque cellule plus courte jusqu’à ce que les colonnes visuelles s’empilent. Cette capacité découpe d’abord l’entrée sur les sauts de ligne (LF, CRLF et CR simple), puis chaque ligne non vide sur le délimiteur configuré —virgule par défaut, ou tabulation, pipe, point-virgule, ou toute courte chaîne personnalisée que vous fournissez.
Le rognage optionnel des champs retire les espaces de tête et de queue avant la mesure de largeur, afin qu’un espace accidentel dans un collage CSV n’enfle pas une colonne. Les lignes irrégulières avec moins de champs que la plus large sont complétées par des chaînes vides pour que chaque ligne ait le même nombre de colonnes.
Pour chaque colonne le moteur mémorise la longueur maximale de cellule, puis rembourre chaque cellule à cette largeur : l’alignement à gauche ajoute des espaces à la fin, à droite au début, et au centre répartit le budget avec le plancher à gauche et le reste à droite pour un centre stable et déterministe. Les colonnes sont réassemblées avec un écart configurable d’espaces purs (deux par défaut), dans le style familier de column -t pour un tableau monospacé, sans réinjecter le délimiteur d’origine dans l’affichage.
Les lignes sources vides sont conservées comme lignes blanches en sortie pour que les coupures de section de votre collage survivent.
Où les colonnes alignées apportent de la valeur au travail réel
Les équipes support et opérations collent des fragments CSV issus de tickets et ont besoin d’un tableau monospacé lisible d’un coup d’œil dans le chat ou un runbook sans ouvrir un tableur. Développeurs et SRE transforment des sorties de sondes séparées par pipes ou tabulations en colonnes alignées pour des notes d’incident, des descriptions de pull request et des journaux de terminal qui restent lisibles lorsque les valeurs diffèrent en longueur.
Les équipes data et analytics alignent à droite les colonnes numériques et à gauche les libellés pour que les tableaux mixtes respectent les conventions visuelles des rapports financiers avant copie dans la documentation. Éducateurs et rédacteurs techniques construisent des exemples pédagogiques de mise en page à largeur fixe et de concepts de délimiteur sans installer d’utilitaires column sur chaque machine d’élève.
Préférez cette page lorsque l’intention de recherche est d’aligner un texte en colonnes, de rembourrer des champs délimités ou de rendre un CSV désordonné lisible en tableau ; s’il vous faut convertir de la prose en tableau Markdown avec un LLM, fusionner des fichiers CSV ou rembourrer une seule chaîne à une largeur fixe, utilisez ces outils dédiés plutôt que de forcer ce contrat.
Cas d’usage
Embellir des collages CSV et TSV
Transformez des exports irréguliers séparés par virgules ou tabulations en un tableau monospacé que vous pouvez coller dans des tickets, de la documentation et le chat sans ouvrir un tableur.
Aligner des sorties CLI et de sondes
Rembourrez la sortie de commandes délimitée par pipes ou espaces pour que les colonnes d’état s’alignent dans les notes d’incident, descriptions de PR et runbooks.
Aligner les nombres à droite dans des tableaux mixtes
Utilisez l’alignement à droite sur les colonnes numériques et à gauche sur les libellés pour que des extraits financiers ou d’inventaire suivent les conventions de rapports en police monospacée.
Questions fréquentes
Comment aligner un texte délimité en colonnes ?
Envoyez un texte multiligne avec un délimiteur (virgule par défaut).
Quels délimiteurs sont pris en charge ?
Toute chaîne non vide d’au plus huit caractères. Choix courants : virgule, tabulation, pipe (|) et point-virgule. La valeur par défaut est la virgule. Vous pouvez envoyer la séquence de deux caractères \t pour une tabulation.
L’alignement conserve-t-il le délimiteur d’origine en sortie ?
Non. Les champs sont rembourrés et réassemblés avec un écart configurable d’espaces (deux par défaut), dans le style classique de column -t, pour une lecture monospacée propre.
Que se passe-t-il avec des lignes irrégulières ou blanches ?
Les lignes plus courtes sont complétées par des cellules vides jusqu’à la ligne la plus large. Les lignes sources entièrement vides sont conservées comme lignes blanches dans la sortie alignée.
Quel est le coût ?
L’outil navigateur est gratuit et s’exécute en local.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/str/align-columns \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"name,age,city\nAlice,30,NY\nBob,25,Los Angeles"}'const res = await fetch("https://api.kit.forhosting.com/str/align-columns", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "name,age,city\nAlice,30,NY\nBob,25,Los Angeles"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/align-columns",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "name,age,city\nAlice,30,NY\nBob,25,Los Angeles"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/align-columns", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"name,age,city\\nAlice,30,NY\\nBob,25,Los Angeles"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"name,age,city\nAlice,30,NY\nBob,25,Los Angeles"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/align-columns", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "name,age,city\nAlice,30,NY\nBob,25,Los Angeles"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.align_columns",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Comment fonctionne l’alignement des colonnes sur un texte délimité
Les charges trop volumineuses, trop de lignes ou de colonnes, un texte vide ou un délimiteur vide échouent avec invalid_input au lieu de tronquer silencieusement les données.
Contrat d’entrée, forme de la réponse et règles de validation
Vérification classique : name,age,city puis Alice,30,NY puis Bob,25,Los Angeles avec virgule par défaut et gap deux produit trois colonnes alignées à gauche dont la colonne ville est assez large pour Los Angeles et dont les cellules plus courtes sont rembourrées d’espaces pour qu’une police monospacée montre des bords verticaux nets. Utilisez le formulaire gratuit du navigateur pour coller-copier le formatage, puis appelez le même contrat depuis des scripts pour normaliser une sortie CLI, des tableaux README ou des tickets de support avant publication. Envoyez en POST un corps JSON avec le text obligatoire : une chaîne multiligne de champs délimités. Le delimiter optionnel vaut par défaut une virgule et accepte des alias comme sep ou delim ; écrivez un vrai caractère de tabulation ou la séquence de deux caractères barre-oblique-inverse-t lorsque les clients ne peuvent pas facilement embarquer des caractères de contrôle. L’align optionnel se normalise en left, right ou center (alias l, r, c, start, end, middle). Le gap optionnel est un entier non négatif d’espaces entre colonnes rembourrées, deux par défaut, plafonné pour qu’une seule requête n’explose pas la taille de sortie. trim_fields est optionnel et vaut true par défaut ; mettez-le à false lorsque les espaces de tête internes sont significatifs et doivent rester. En cas de succès la réponse renvoie les options normalisées et aligned (le tableau multiligne complet), rows (nombre de lignes sources non vides), columns (largeur de la matrice), column_widths (largeurs par colonne utilisées pour le rembourrage), line_count y compris les lignes blanches, et operation à align_columns. Texte manquant ou vide, délimiteur vide, drapeaux de rognage non booléens, valeurs d’align hors ensemble autorisé ou tailles au-delà des plafonds documentés lèvent invalid_input et ne sont pas facturés. Le prix des appels API réussis est la base publiée de $0.002 par élément.
Où les colonnes alignées apportent de la valeur au travail réel
Comme cette capacité est du parse pur de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant, et une validation échouée ne consomme pas le solde prépayé.