Convertir JSON en Excel : Guide complet avec outils et code
Apprenez à convertir des données JSON en fichiers Excel (.xlsx, .csv). Guide pratique avec JavaScript, Python, outils en ligne et exemples de code.
Big JSON Team
• Technical WriterExpert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.
# Convertir JSON en Excel : Guide complet avec outils et code
La conversion JSON vers Excel est une tâche courante en analyse de données. Ce guide vous montre toutes les méthodes pour convertir JSON en fichiers Excel (.xlsx) ou CSV.
Pourquoi convertir JSON en Excel ?
- Analyse de données : Excel offre des outils puissants
- Partage : Format familier pour non-développeurs
- Visualisation : Graphiques et tableaux croisés dynamiques
- Reporting : Génération de rapports automatisés
JSON vers CSV (Simple)
Méthode JavaScript
\\\javascript
function jsonToCSV(jsonData) {
const items = Array.isArray(jsonData) ? jsonData : [jsonData];
if (items.length === 0) return '';
// En-têtes
const headers = Object.keys(items[0]);
const csvHeaders = headers.join(',');
// Lignes
const csvRows = items.map(item =>
headers.map(header => {
const value = item[header];
// Échapper guillemets et virgules
if (typeof value === 'string') {
return \"${value.replace(/"/g, '""')}"\;
}
return value;
}).join(',')
);
return [csvHeaders, ...csvRows].join('\n');
}
// Exemple
const donnees = [
{nom: "Alice", age: 30, ville: "Paris"},
{nom: "Bob", age: 25, ville: "Lyon"},
{nom: "Charlie", age: 35, ville: "Marseille"}
];
const csv = jsonToCSV(donnees);
console.log(csv);
/
nom,age,ville
"Alice",30,"Paris"
"Bob",25,"Lyon"
"Charlie",35,"Marseille"
/
// Télécharger CSV
function downloadCSV(csv, filename = 'data.csv') {
const blob = new Blob([csv], {type: 'text/csv;charset=utf-8;'});
const link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = filename;
link.click();
}
downloadCSV(csv, 'utilisateurs.csv');
\\\
Méthode Python
\\\python
import json
import csv
# Charger JSON
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# Convertir en CSV
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
if isinstance(data, list) and len(data) > 0:
writer = csv.DictWriter(f, fieldnames=data[0].keys())
writer.writeheader()
writer.writerows(data)
# Avec pandas (recommandé)
import pandas as pd
# Lire JSON
df = pd.read_json('data.json')
# Sauvegarder en CSV
df.to_csv('output.csv', index=False, encoding='utf-8')
\\\
JSON vers Excel (.xlsx)
Avec JavaScript (XLSX library)
\\\javascript
// Installation: npm install xlsx
import as XLSX from 'xlsx';
function jsonToExcel(jsonData, filename = 'data.xlsx') {
// Créer workbook
const wb = XLSX.utils.book_new();
// Convertir JSON en worksheet
const ws = XLSX.utils.json_to_sheet(jsonData);
// Ajouter worksheet au workbook
XLSX.utils.book_append_sheet(wb, ws, 'Données');
// Écrire fichier
XLSX.writeFile(wb, filename);
}
// Exemple
const utilisateurs = [
{nom: "Alice", age: 30, email: "alice@ex.com"},
{nom: "Bob", age: 25, email: "bob@ex.com"}
];
jsonToExcel(utilisateurs, 'utilisateurs.xlsx');
\\\
Avec formatage avancé
\\\javascript
import as XLSX from 'xlsx';
function jsonToExcelAvance(jsonData, filename) {
const wb = XLSX.utils.book_new();
const ws = XLSX.utils.json_to_sheet(jsonData);
// Largeur des colonnes
const wscols = [
{wch: 20}, // Colonne A
{wch: 10}, // Colonne B
{wch: 30} // Colonne C
];
ws['!cols'] = wscols;
// Style des en-têtes (nécessite xlsx-style)
const range = XLSX.utils.decode_range(ws['!ref']);
for (let C = range.s.c; C <= range.e.c; ++C) {
const address = XLSX.utils.encode_col(C) + "1";
if (!ws[address]) continue;
ws[address].s = {
font: {bold: true},
fill: {fgColor: {rgb: "CCCCCC"}}
};
}
XLSX.utils.book_append_sheet(wb, ws, 'Feuille1');
XLSX.writeFile(wb, filename);
}
\\\
Avec Python (openpyxl)
\\\python
import json
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill
# Charger JSON
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# Créer workbook
wb = Workbook()
ws = wb.active
ws.title = "Données"
# En-têtes
if data and len(data) > 0:
headers = list(data[0].keys())
ws.append(headers)
# Style des en-têtes
for cell in ws[1]:
cell.font = Font(bold=True)
cell.fill = PatternFill(start_color="CCCCCC",
end_color="CCCCCC",
fill_type="solid")
# Données
for item in data:
ws.append([item.get(h) for h in headers])
# Sauvegarder
wb.save('output.xlsx')
\\\
Avec Python (pandas - le plus simple)
\\\python
import pandas as pd
import json
# Lire JSON
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# Convertir en DataFrame
df = pd.DataFrame(data)
# Sauvegarder en Excel
df.to_excel('output.xlsx', index=False, sheet_name='Données')
# Avec formatage
with pd.ExcelWriter('output_formate.xlsx', engine='openpyxl') as writer:
df.to_excel(writer, index=False, sheet_name='Données')
# Accéder au worksheet
worksheet = writer.sheets['Données']
# Ajuster largeur colonnes
for column in worksheet.columns:
max_length = 0
column = [cell for cell in column]
for cell in column:
try:
if len(str(cell.value)) > max_length:
max_length = len(cell.value)
except:
pass
adjusted_width = (max_length + 2)
worksheet.column_dimensions[column[0].column_letter].width = adjusted_width
\\\
JSON imbriqué vers Excel
Aplatir JSON
\\\javascript
function flattenJSON(obj, prefix = '') {
const flattened = {};
for (const [key, value] of Object.entries(obj)) {
const newKey = prefix ? \${prefix}.${key}\ : key;
if (value && typeof value === 'object' && !Array.isArray(value)) {
Object.assign(flattened, flattenJSON(value, newKey));
} else if (Array.isArray(value)) {
flattened[newKey] = value.join(', ');
} else {
flattened[newKey] = value;
}
}
return flattened;
}
// Exemple
const jsonNested = {
nom: "Jean",
adresse: {
rue: "123 Rue Main",
ville: "Paris",
code: "75001"
},
hobbies: ["lecture", "sport"]
};
const flat = flattenJSON(jsonNested);
console.log(flat);
/
{
nom: "Jean",
"adresse.rue": "123 Rue Main",
"adresse.ville": "Paris",
"adresse.code": "75001",
hobbies: "lecture, sport"
}
/
\\\
Python avec json_normalize
\\\python
import pandas as pd
import json
# JSON imbriqué
with open('nested.json', 'r') as f:
data = json.load(f)
# Aplatir automatiquement
df = pd.json_normalize(data)
# Sauvegarder
df.to_excel('output.xlsx', index=False)
\\\
Outils en ligne
1. ConvertCSV.com
- URL: convertcsv.com/json-to-csv.htm
- Simple et rapide
- Gratuit
2. Code Beautify
- URL: codebeautify.org/json-to-excel-converter
- Conversion directe JSON → Excel
- Téléchargement immédiat
3. JSON-CSV.com
- Options de configuration
- Gestion JSON imbriqué
Cas d'usage avancés
Plusieurs feuilles Excel
\\\javascript
import * as XLSX from 'xlsx';
function createMultiSheetExcel(dataObj, filename) {
const wb = XLSX.utils.book_new();
// Créer une feuille pour chaque clé
for (const [sheetName, data] of Object.entries(dataObj)) {
const ws = XLSX.utils.json_to_sheet(data);
XLSX.utils.book_append_sheet(wb, ws, sheetName);
}
XLSX.writeFile(wb, filename);
}
// Exemple
const donnees = {
"Utilisateurs": [
{nom: "Alice", age: 30},
{nom: "Bob", age: 25}
],
"Produits": [
{nom: "Laptop", prix: 999},
{nom: "Souris", prix: 25}
]
};
createMultiSheetExcel(donnees, 'multi-sheets.xlsx');
\\\
API vers Excel
\\\javascript
async function apiToExcel(apiUrl, filename) {
const response = await fetch(apiUrl);
const data = await response.json();
const wb = XLSX.utils.book_new();
const ws = XLSX.utils.json_to_sheet(data);
XLSX.utils.book_append_sheet(wb, ws, 'API Data');
XLSX.writeFile(wb, filename);
}
// Utilisation
apiToExcel('https://api.example.com/users', 'users.xlsx');
\\\
Bonnes pratiques
\\\javascript
const cleanData = data.map(item => ({
...item,
field: item.field ?? 'N/A'
}));
\\\
\\\python
df['date'] = pd.to_datetime(df['date']).dt.strftime('%Y-%m-%d')
\\\
\\\javascript
// Paginer si > 1M lignes
const MAX_ROWS = 1000000;
if (data.length > MAX_ROWS) {
// Diviser en plusieurs fichiers
}
\\\
Conclusion
Meilleure méthode par langage :- JavaScript : Bibliothèque XLSX
- Python : Pandas (le plus simple)
- Rapide : Outils en ligne (données non-sensibles)
Articles Connexes
Meilleurs outils JSON en ligne 2026 : Validateurs, formateurs et éditeurs
Découvrez les meilleurs outils JSON en ligne pour valider, formater, convertir et éditer vos données JSON. Guide complet avec comparaisons et exemples pratiques.
Python et JSON : Guide complet pour manipuler des données JSON
Maîtrisez la manipulation JSON en Python avec le module json. Apprenez à lire, écrire, parser et convertir des données JSON avec des exemples pratiques.
JavaScript et JSON : Guide complet de manipulation des données
Maîtrisez JSON en JavaScript avec JSON.parse(), JSON.stringify(), et techniques avancées. Guide pratique avec exemples pour le développement web moderne.