Passer au contenu du pied de page
UTILISER IRONXL POUR PYTHON

Comment importer un fichier Excel dans une table de base de données en utilisant Python

Dans le monde actuel, axé sur les données, la gestion et le traitement efficaces de ces données sont des tâches essentielles pour toute organisation ou tout individu. Python , avec son riche écosystème de bibliothèques, offre des outils puissants pour la manipulation et la gestion des données, tels que la bibliothèque pandas . Un scénario courant consiste à extraire ou importer des données à partir de feuilles de calcul Excel et à stocker ou insérer ces données dans une base de données en vue d'une analyse plus approfondie ou d'une intégration avec d'autres systèmes. Dans ce tutoriel, nous verrons comment créer un script Python qui automatise ce processus, vous permettant de lire facilement les données des fichiers Excel et de les insérer dans une base de données. À la fin de ce tutoriel, vous serez prêt à gérer efficacement les tâches de migration de données. Commençons !

Comment importer un fichier Excel dans une table de base de données à l'aide de Python

  1. Commencez par installer la bibliothèque IronXL.
  2. Chargez votre fichier Excel en mémoire à l'aide d'IronXL.
  3. Chargez la feuille de calcul spécifique avec laquelle vous souhaitez travailler.
  4. Sélectionnez la plage de données précise que vous souhaitez importer.
  5. Établir une connexion avec une base de données telle que SQLite ou MySQL en utilisant Python.
  6. Créez une nouvelle table dans votre base de données SQLite pour y stocker les données importées.
  7. Insérez les lignes sélectionnées du fichier Excel dans la table SQLite nouvellement créée.
  8. Récupérez et sélectionnez les données de la table SQLite créée pour une analyse ou un traitement ultérieur.

Dans ce tutoriel, nous utiliserons IronXL , une bibliothèque Python réputée pour son efficacité dans la gestion des fichiers Excel. En intégrant IronXL à notre script, nous assurons une extraction transparente des données à partir des feuilles de calcul Excel, permettant une insertion fluide dans les bases de données pour une analyse et un traitement ultérieurs.

Qu'est-ce qu'IronXL ?

IronXL est une bibliothèque Python développée par Iron Software, offrant des fonctionnalités robustes pour la lecture , la génération et l'édition de fichiers Excel directement dans les applications Python. IronXL se distingue notamment par son indépendance vis-à-vis de l'installation de Microsoft Excel, ce qui simplifie son déploiement dans différents environnements. Avec IronXL, les développeurs bénéficient de :

Compatibilité multiplateforme : Bénéficiez d'un fonctionnement fluide sur les plateformes Windows, macOS, Linux, Docker, Azure et AWS, garantissant une adaptabilité à diverses configurations de développement.

Importation et exportation de données : Gérez facilement l'importation de données à partir de fichiers XLS, XLSX, CSV et TSV, avec la possibilité d'exporter des feuilles de calcul vers ces formats et même vers JSON pour une interopérabilité améliorée.

Fonctionnalités de chiffrement : Assurez la sécurité de vos données en tirant parti des capacités de chiffrement d'IronXL, permettant la protection des fichiers XLSX, XLSM et XLTX par mot de passe.

Formules et recalcul : Travaillez sans effort avec les formules Excel, avec l'avantage supplémentaire du recalcul automatique à chaque modification d'une feuille, garantissant ainsi l'exactitude et la fiabilité de la manipulation des données.

Style des cellules : Personnalisez l'apparence de chaque cellule en ajustant les styles de police, les tailles, les motifs d'arrière-plan, les bordures et l'alignement, améliorant ainsi la présentation visuelle de vos documents Excel.

Large gamme de formats de documents : grâce à la prise en charge de divers formats, notamment XLS, XLSX, XLST, XLSM, CSV et TSV, IronXL permet aux développeurs de gérer les données dans une multitude de scénarios avec facilité et efficacité.

Commençons maintenant par installer IronXL.

Étape 1 : Installer la bibliothèque IronXL

La toute première étape consiste à installer la bibliothèque IronXL. Exécutez la commande suivante dans l'invite de commandes pour installer IronXL.

pip install IronXL
pip install IronXL
SHELL

Étape 2 : Charger le classeur Excel

L'étape suivante consiste à charger le fichier Excel. Nous utiliserons le fichier Excel suivant pour ce tutoriel.

Comment importer un fichier Excel dans une table de base de données avec Python : Figure 1 - Exemple de fichier Excel à importer

Le code suivant chargera le fichier Excel existant en mémoire.

from ironxl import *  # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV

# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"

# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")
from ironxl import *  # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV

# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"

# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")
PYTHON

L'extrait de code Python ci-dessus illustre le chargement d'un classeur Excel nommé " sample_excel.xlsx " à l'aide de la bibliothèque IronXL. Tout d'abord, le module Python nécessaire est importé depuis IronXL. Ensuite, une clé de licence est attribuée pour valider l'utilisation de la bibliothèque. Vous pouvez obtenir votre clé de licence gratuite sur le site Web d'IronXL . Enfin, la méthode Load est utilisée pour ouvrir et charger le classeur Excel spécifié en mémoire. Cela permet une manipulation ultérieure de son contenu par programmation, comme la lecture de données, la modification des valeurs des cellules ou l'application d'une mise en forme.

Étape 3 : Sélection de la feuille de calcul

Pour sélectionner une feuille de calcul dans un classeur Excel à l'aide d'IronXL, vous pouvez spécifier l'index ou le nom de la feuille de calcul.

# Select the first worksheet in the loaded Excel workbook
worksheet = workbook.WorkSheets[0]
# Select the first worksheet in the loaded Excel workbook
worksheet = workbook.WorkSheets[0]
PYTHON

Cette ligne sélectionne la première feuille de calcul du classeur Excel chargé et l'affecte à la variable worksheet , permettant ainsi d'effectuer des opérations ultérieures sur cette feuille de calcul spécifique au sein du classeur. Cela permettra de charger des données Excel à partir d'une feuille de calcul dans une variable de feuille de calcul.

Étape 4 : Ouvrir la connexion à la base de données

Dans ce tutoriel, nous utilisons une base de données SQLite au lieu d'un serveur de base de données MySQL. Pour lancer les opérations sur la base de données, nous commençons par établir une connexion à celle-ci.

import sqlite3

# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
import sqlite3

# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
PYTHON

La ligne ci-dessus établit une connexion à une base de données SQLite nommée 'data.db'. Si la base de données spécifiée n'existe pas, elle sera créée automatiquement. Cette connexion permet une interaction ultérieure avec la base de données SQLite, notamment l'exécution de requêtes et la réalisation d'opérations de manipulation de données.

Étape 5 : Créer un tableau

L'étape suivante consiste à créer une table dans la base de données, dans laquelle nous importerons les données d'un fichier Excel. Pour créer cette table dans la base de données SQLite, vous pouvez exécuter une requête SQL à l'aide de l'objet de connexion.

# Create a cursor object for database operations
cursor = conn.cursor()

# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
    id INTEGER,
    FirstName TEXT,
    LastName TEXT,
    Gender TEXT,
    Country TEXT,
    Age INTEGER
)
''')
# Create a cursor object for database operations
cursor = conn.cursor()

# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
    id INTEGER,
    FirstName TEXT,
    LastName TEXT,
    Gender TEXT,
    Country TEXT,
    Age INTEGER
)
''')
PYTHON

L'extrait de code ci-dessus initialise un objet curseur pour exécuter des commandes SQL au sein de la connexion à la base de données SQLite. Il crée une table nommée " client " avec les colonnes " id ", " Prénom ", " Nom ", " Genre ", " Pays " et " Âge ". La table est créée si elle n'existe pas déjà, en respectant les types de données de colonnes spécifiés.

Étape 6 : Importer des données dans la base de données à l'aide de Python

Nous allons maintenant insérer des données dans notre table nouvellement créée. Nous allons importer un fichier Excel et insérer ses données dans la base de données SQLite.

# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
    # Extracting values from columns A to F in Excel worksheet
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    # Executing SQL INSERT command
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)

# Commit data insertion to the database
conn.commit()
# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
    # Extracting values from columns A to F in Excel worksheet
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    # Executing SQL INSERT command
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)

# Commit data insertion to the database
conn.commit()
PYTHON

Le code ci-dessus parcourt les lignes 2 à 10 de la feuille de calcul Excel, en extrayant les valeurs des colonnes A à F pour chaque ligne. Ces valeurs sont stockées dans un tuple, représentant les données à insérer dans la table " client ". Le curseur exécute ensuite une commande SQL INSERT, en intégrant le tuple de valeurs dans la table. Ce processus se répète pour chaque ligne, important ainsi les données du fichier Excel dans la base de données SQLite. Enfin, conn.commit() valide la transaction, garantissant ainsi que les modifications sont enregistrées et conservées dans la base de données.

Étape 7 : Lecture des données de la base de données

Pour vérifier si les données ont été correctement insérées, vous pouvez lire les données de la table " customer " dans la base de données SQLite à l'aide d'une requête SELECT. Par exemple :

# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")

# Fetch all rows from the result set
rows = cursor.fetchall()

# Print each row to verify inserted data
for row in rows:
    print(row)

# Close the database connection to release resources
conn.close()
# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")

# Fetch all rows from the result set
rows = cursor.fetchall()

# Print each row to verify inserted data
for row in rows:
    print(row)

# Close the database connection to release resources
conn.close()
PYTHON

Le code ci-dessus exécute une requête SELECT sur la table " customer " de la base de données SQLite, en récupérant toutes les lignes. Les lignes récupérées sont stockées dans la variable 'rows' à l'aide de la méthode fetchall() . Ensuite, chaque ligne est imprimée successivement, affichant les données insérées dans la table " client ". Enfin, la connexion à la base de données est fermée à l'aide de la méthode close() afin de libérer les ressources.

Comment importer un fichier Excel dans une table de base de données avec Python : Figure 2 - Lecture des données de la base de données

Le code complet est le suivant :

import sqlite3
from ironxl import *  # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV

# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"

# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")

# Select worksheet at index 0
worksheet = workbook.WorkSheets[0]

# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')

# Create a cursor object for database operations
cursor = conn.cursor()

# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
    id INTEGER,
    FirstName TEXT,
    LastName TEXT,
    Gender TEXT,
    Country TEXT,
    Age INTEGER
)
''')

# Clear any existing data from the table
cursor.execute("DELETE FROM customer")

# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
    # Extracting values from columns A to F in Excel worksheet
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    # Executing SQL INSERT command
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)

# Commit data insertion to the database
conn.commit()

# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")

# Fetch all rows from the result set
rows = cursor.fetchall()

# Print each row to verify inserted data
for row in rows:
    print(row)

# Close the database connection to release resources
conn.close()
import sqlite3
from ironxl import *  # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV

# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"

# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")

# Select worksheet at index 0
worksheet = workbook.WorkSheets[0]

# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')

# Create a cursor object for database operations
cursor = conn.cursor()

# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
    id INTEGER,
    FirstName TEXT,
    LastName TEXT,
    Gender TEXT,
    Country TEXT,
    Age INTEGER
)
''')

# Clear any existing data from the table
cursor.execute("DELETE FROM customer")

# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
    # Extracting values from columns A to F in Excel worksheet
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    # Executing SQL INSERT command
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)

# Commit data insertion to the database
conn.commit()

# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")

# Fetch all rows from the result set
rows = cursor.fetchall()

# Print each row to verify inserted data
for row in rows:
    print(row)

# Close the database connection to release resources
conn.close()
PYTHON

Conclusion

En conclusion, ce tutoriel a démontré une approche automatisée de la manipulation de données, et plus précisément de l'extraction et de l'insertion de données Excel dans une base de données. Ce processus améliore non seulement l'efficacité de la gestion des données, mais libère également tout son potentiel pour les activités de traitement des données. Exploitez la puissance de Python et d'IronXL pour optimiser vos flux de données et faire progresser vos projets en toute confiance.

Questions Fréquemment Posées

Comment puis-je importer des données d'un fichier Excel dans une base de données en utilisant Python ?

Vous pouvez utiliser la bibliothèque IronXL pour importer des données d'un fichier Excel dans une base de données en chargeant d'abord le fichier Excel avec `WorkBook.Load()`, puis en sélectionnant la feuille de calcul et en établissant une connexion à la base de données avec SQLite pour insérer les données.

Quels sont les avantages de l'utilisation d'IronXL pour gérer les fichiers Excel en Python ?

IronXL vous permet de gérer les fichiers Excel sans nécessiter l'installation de Microsoft Excel, prend en charge les opérations multiplateformes, fournit des fonctionnalités robustes comme le chiffrement et le recalcul des formules, et gère efficacement les processus d'extraction et d'insertion de données.

Comment puis-je installer IronXL pour l'utiliser dans des projets Python ?

Pour installer IronXL pour les projets Python, vous pouvez utiliser la commande : `pip install IronXL`. Cela ajoutera IronXL à votre environnement Python, vous permettant de gérer efficacement les fichiers Excel.

Est-il possible de traiter des fichiers Excel en Python sans Microsoft Excel installé ?

Oui, en utilisant IronXL, vous pouvez traiter des fichiers Excel sans avoir Microsoft Excel installé. IronXL fournit toutes les fonctionnalités nécessaires pour lire, éditer et écrire des fichiers Excel de manière indépendante.

Quel est le processus pour créer une table de base de données pour stocker les données Excel en Python ?

Pour créer une table de base de données en Python, vous pouvez utiliser le module `sqlite3` de SQLite. Après avoir établi une connexion avec `connect()`, exécutez une instruction SQL `CREATE TABLE` via un objet curseur.

Comment puis-je vérifier si les données Excel ont été insérées avec succès dans une base de données SQLite ?

Vous pouvez vérifier l'insertion en exécutant une requête `SELECT` sur la table et en utilisant la méthode `fetchall()` pour récupérer et imprimer toutes les lignes du jeu de résultats.

Quelles étapes doivent être suivies pour la migration de données d'Excel vers une base de données en utilisant Python ?

Les étapes incluent l'installation d'IronXL, le chargement du fichier Excel, la sélection de la feuille de calcul, la connexion à la base de données, la création d'une table, et l'itération à travers les lignes Excel pour insérer des données à l'aide de commandes SQL `INSERT`.

IronXL peut-il gérer les formules Excel et les recalculer en Python ?

Oui, IronXL prend en charge les formules Excel et peut les recalculer, offrant une solution complète pour la manipulation de fichiers Excel dans les applications Python.

IronXL prend-il en charge les opérations multiplateformes pour la gestion des fichiers Excel ?

Oui, IronXL prend en charge les opérations multiplateformes, y compris les environnements comme Windows, macOS, Linux, Docker, Azure et AWS, en faisant un choix polyvalent pour divers environnements de développement.

Comment IronXL peut-il améliorer les flux de travail de données dans les applications Python ?

IronXL améliore les flux de travail de données en offrant des capacités efficaces d'extraction, de manipulation et d'insertion de données, ce qui optimise les processus de gestion des données et améliore la performance des applications axées sur les données.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite