Vue · Import / Données
Import / mappage de données
DisponibleLe flux d'import des outils BI (PowerBI, Qlik, Tableau) : Stepper (Source → Mappage → Revue → Import) + FileUploader + DataTable d'aperçu + Select de mappage colonne → champ + Alert de
validation. Un seul NodeSpec → rendu identique en Svelte, React, Vue et Angular.
Rendu multi-framework
Utilisez les onglets pour basculer entre Svelte, React, Vue et Angular. Le rendu et le code copié reflètent le framework sélectionné.
Import / mappage : flux CSV (données mock)
- Source Fichier
- 2 Mappage Colonnes → champs
- 3 Revue Aperçu
- 4 Import
1 · Source du fichier
Drag and drop files here
- contacts-2026.csv 180 KB
2 · Mappage des colonnes
company_name→contact_email→country_code→annual_rev→3 · Revue & validation
1 ligne à vérifier
| Airbus Group | [email protected] | FR | 1240000 |
| Safran SA | [email protected] | FR | 880000 |
| Orange SA | [email protected] | FR | 650000 |
| Atos SE | : | FR |
Voir le code (Svelte)
<div class="im-shell">
<Stepper
current={1}
label="Import de données"
steps={[{"label":"Source","description":"Fichier"},{"label":"Mappage","description":"Colonnes → champs"},{"label":"Revue","description":"Aperçu"},{"label":"Import"}]}
/>
<div class="im-section">
<h3 class="im-section-title">1 · Source du fichier</h3>
<FileUploader
label="Glisser-déposer un CSV ou cliquer pour importer"
accept=".csv"
items={[{"name":"contacts-2026.csv","size":184320,"file":{"name":"contacts-2026.csv","size":184320},"status":"complete"}]}
/>
</div>
<div class="im-section">
<h3 class="im-section-title">2 · Mappage des colonnes</h3>
<div class="im-map-grid">
<div class="im-map-source">
<code class="im-map-col">company_name</code>
<span class="im-map-arrow">→</span>
</div>
<Select
label="Champ cible"
value="name"
options={[{"value":"","label":": Ignorer :"},{"value":"name","label":"Nom du compte"},{"value":"email","label":"Email de contact"},{"value":"country","label":"Pays"},{"value":"revenue","label":"Chiffre d'affaires"}]}
/>
<div class="im-map-source">
<code class="im-map-col">contact_email</code>
<span class="im-map-arrow">→</span>
</div>
<Select
label="Champ cible"
value="email"
options={[{"value":"","label":": Ignorer :"},{"value":"name","label":"Nom du compte"},{"value":"email","label":"Email de contact"},{"value":"country","label":"Pays"},{"value":"revenue","label":"Chiffre d'affaires"}]}
/>
<div class="im-map-source">
<code class="im-map-col">country_code</code>
<span class="im-map-arrow">→</span>
</div>
<Select
label="Champ cible"
value="country"
options={[{"value":"","label":": Ignorer :"},{"value":"name","label":"Nom du compte"},{"value":"email","label":"Email de contact"},{"value":"country","label":"Pays"},{"value":"revenue","label":"Chiffre d'affaires"}]}
/>
<div class="im-map-source">
<code class="im-map-col">annual_rev</code>
<span class="im-map-arrow">→</span>
</div>
<Select
label="Champ cible"
value="revenue"
options={[{"value":"","label":": Ignorer :"},{"value":"name","label":"Nom du compte"},{"value":"email","label":"Email de contact"},{"value":"country","label":"Pays"},{"value":"revenue","label":"Chiffre d'affaires"}]}
/>
</div>
</div>
<div class="im-section">
<h3 class="im-section-title">3 · Revue & validation</h3>
<Alert
tone="warning"
title="1 ligne à vérifier"
message="La ligne « Atos SE » a un email manquant et un chiffre d'affaires vide. Elle sera importée avec des valeurs nulles."
/>
<DataTable
caption="Aperçu des 4 premières lignes"
columns={[{"key":"c1","label":"company_name"},{"key":"c2","label":"contact_email"},{"key":"c3","label":"country_code"},{"key":"c4","label":"annual_rev"}]}
rows={[{"id":"1","c1":"Airbus Group","c2":"[email protected]","c3":"FR","c4":"1240000"},{"id":"2","c1":"Safran SA","c2":"[email protected]","c3":"FR","c4":"880000"},{"id":"3","c1":"Orange SA","c2":"[email protected]","c3":"FR","c4":"650000"},{"id":"4","c1":"Atos SE","c2":":","c3":"FR","c4":""}]}
size="sm"
/>
</div>
<div class="im-actions">
<Button variant="secondary">Précédent</Button>
<Button variant="primary">Lancer l'import</Button>
</div>
</div>