Transformer un CSV
Cet outil retravaille la structure d’un fichier CSV sans passer par un tableur : vous renommez des colonnes, changez leur ordre, en supprimez ou en créez de nouvelles à partir d’un calcul simple. Pensé pour qui prépare un export avant de l’importer ailleurs, il livre un fichier propre, aux colonnes exactement dans l’ordre attendu.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Renommer et réordonner
Un import échoue souvent parce que les colonnes ne portent pas le bon nom ou ne sont pas dans l’ordre attendu par le logiciel d’arrivée. L’outil vous laisse renommer chaque en-tête, déplacer les colonnes et retirer celles qui ne servent pas. Vous obtenez une structure alignée sur ce que réclame votre CRM, votre outil comptable ou votre tableur, sans manipuler la moindre formule.
Créer une colonne calculée
Au-delà du simple tri, vous pouvez fabriquer une nouvelle colonne à partir des existantes : concaténer un nom et un prénom, appliquer un taux pour obtenir un total TTC à partir d’un montant HT, ou combiner deux champs en un seul. C’est le genre de retouche qui prend du temps à la main sur des milliers de lignes et se fait ici en une passe.
Tout se passe sur cette page
La transformation s’exécute dans votre navigateur : le fichier n’est jamais envoyé sur un serveur. Cela compte lorsque le CSV contient une liste de clients, des adresses e-mail ou des montants que vous ne souhaitez pas voir circuler. Rien n’est conservé, rien ne transite, et aucun compte n’est requis pour l’utiliser. Les fichiers jusqu’à 25 Mo sont pris en charge, largement de quoi couvrir un export courant sans avoir à le découper au préalable.
Cas d’usage
Aligner un export sur un CRM
Julien Lefèvre renomme et réordonne les colonnes d’un export de contacts pour qu’il corresponde exactement au modèle d’import de son CRM.
Ajouter un total TTC
Menuiserie Rousseau & Fils part d’un export de devis en montants HT et ajoute une colonne calculée avec le total TTC, avant transmission au comptable.
Fusionner nom et prénom
Studio Lumen SAS combine les colonnes nom et prénom en un seul champ « contact » pour préparer un publipostage.
Questions fréquentes
Puis-je créer une colonne à partir d’un calcul ?
Oui, vous pouvez dériver une nouvelle colonne en combinant des champs existants ou en appliquant un calcul simple, comme un total TTC à partir d’un montant HT.
Puis-je changer l’ordre des colonnes ?
Oui. Vous déplacez librement les colonnes et supprimez celles dont vous n’avez pas besoin, jusqu’à obtenir la structure attendue à l’arrivée.
Le fichier est-il transmis à un serveur ?
Non. La transformation se déroule entièrement dans votre navigateur, sur cette page ; aucune donnée ne circule.
L’outil est-il payant ?
Il est gratuit et sans limite dans le navigateur. Pour l’intégrer à un traitement automatisé, un usage programmable existe à $0.002 la requête.
Quelle taille de fichier puis-je traiter ?
Jusqu’à 25 Mo par fichier.
Faut-il créer un compte ?
Non, aucun compte n’est nécessaire : l’outil s’utilise directement, sans inscription.
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/data/transform-csv \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/transform-csv", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/transform-csv",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/transform-csv", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/transform-csv", 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": "…"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.transform_csv",
"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.
Limites
max_mb | 25 |
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. |