from ironxl import *
# Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
workbook = WorkBook.Load("sample.xlsx")
# Select worksheet at index 0
worksheet = workbook.WorkSheets[0]
# Get any existing worksheet
first_sheet = workbook.DefaultWorkSheet
# Select a cell and return the converted value
cell_value = worksheet["A2"].IntValue
# Read from ranges of cells elegantly.
for cell in worksheet["A2:A10"]:
print("Cell {} has value '{}'".format(cell.AddressString, cell.Text))
# Calculate aggregate values such as Min, and Sum
total_sum = worksheet["A2:A10"].Sum()
Comment importer un fichier Excel dans une table de base de données à l'aide de Python
UTILISATION D'IRONXL POUR PYTHON
Comment importer un fichier Excel dans une table de base de données à l'aide de Python
Chaknith Bin
juin 6, 2024
Partager:
Dans le monde actuel axé sur les données, la manipulation et le traitement efficaces des 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 import pandas. Un scénario courant est la nécessité d'extraire ou d'importer des données à partir de Excel et de stocker ou d'insérer des données dans une base de données pour une analyse plus approfondie ou une intégration avec d'autres systèmes. Dans ce tutoriel, nous allons explorer comment créer un script Python qui automatise ce processus, vous permettant de lire de manière transparente les données des fichiers de la feuille 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
Commencez par installer la bibliothèque IronXL.
Chargez votre fichier Excel en mémoire à l'aide d'IronXL.
Chargez la feuille de calcul spécifique avec laquelle vous souhaitez travailler.
Sélectionnez la plage de données précise que vous souhaitez importer.
Établir une connexion avec n'importe quelle base de données telle que SQLite ou MySQL en utilisant Python.
Créez une nouvelle table dans votre base de données SQLite pour accueillir les données importées.
Insérer les lignes sélectionnées du fichier Excel dans la table SQLite nouvellement créée.
Récupérer et sélectionner les données de la table SQLite créée en vue d'une analyse ou d'un traitement ultérieur.
Dans ce didacticiel, nous allons utiliser IronXL, une bibliothèque Python réputée pour son efficacité dans la gestion des fichiers Excel. En intégrant IronXL dans notre script, nous assurons une extraction transparente des données des feuilles de calcul Excel, ce qui permet une insertion aisée dans les bases de données en vue d'une analyse et d'un traitement ultérieurs.
Qu'est-ce qu'IronXL ?
IronXL est une bibliothèque Python développée par Iron Software, offrant une fonctionnalité robuste pour la lecture, la génération et l'édition de fichiers Excel directement au sein des applications Python. IronXL se distingue notamment par son indépendance vis-à-vis de l'installation de Microsoft Excel, ce qui simplifie le déploiement dans différents environnements. Avec IronXL, les développeurs bénéficient de :
Prise en charge multiplateforme : Profitez d'un fonctionnement fluide sur les plateformes Windows, macOS, Linux, Docker, Azure et AWS, assurant une adaptabilité à divers environnements 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 flexibilité d'exporter des feuilles de calcul vers ces formats et même vers JSON pour une interopérabilité améliorée.
Fonctionnalités de cryptage : Assurez la sécurité des données en utilisant les capacités de cryptage d'IronXL, permettant la protection des fichiers XLSX, XLSM et XLTX avec des mots de passe.
Formules et recalcul : Travaillez sans effort avec les formules Excel, avec l'avantage supplémentaire du recalcul automatique chaque fois qu'une feuille est modifiée, garantissant précision et fiabilité dans la manipulation des données.
Style des Cellules : Personnalisez l'apparence des cellules individuelles en ajustant les styles de police, les tailles, les motifs de fond, les bordures et l'alignement pour améliorer la présentation visuelle de vos documents Excel.
Large gamme de formats de documents : Avec la prise en charge de divers formats, y compris 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 par installer IronXL.
Étape 1 : Installation de la bibliothèque IronXL
La toute première étape consiste à installer la bibliothèque IronXL. Exécutez la commande suivante pour installer IronXL dans l'invite de commande.
pip install IronXL
pip install IronXL
PYTHON
Étape 2 : Charger le classeur Excel
L'étape suivante consiste à charger le fichier Excel. Nous utiliserons le fichier Excel suivant pour ce tutoriel.
Le code suivant charge le fichier Excel existant en mémoire.
from ironxl import * # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024";
workbook = WorkBook.Load("sample_excel.xlsx")
from ironxl import * # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024";
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 for Python. Tout d'abord, le module Python nécessaire est importé d'IronXL for Python. Ensuite, une clé de licence est attribuée pour valider l'utilisation de la bibliothèque. Vous pouvez obtenir votre clé de licence gratuite depuis le site web d'IronXL. Enfin, la méthode Charger est utilisée pour ouvrir et charger le classeur Excel spécifié dans la mémoire. Cela permet de manipuler ultérieurement son contenu de manière programmatique, par exemple en lisant des données, en modifiant les valeurs des cellules ou en appliquant une mise en forme.
Étape 3 : Sélection de la feuille de travail
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.
worksheet = workbook.WorkSheets[0]
worksheet = workbook.WorkSheets[0]
PYTHON
Cette ligne sélectionne la première feuille de calcul du classeur Excel chargé et l'affecte à la variable "feuille de calcul", ce qui permet d'effectuer des opérations ultérieures sur cette feuille de calcul spécifique dans le classeur. Cette opération permet de charger les données d'une feuille Excel dans une variable de la 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 avec la base de données.
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 avec 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, telle que 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, où nous importerons les données d'un fichier Excel. Pour créer une table dans la base de données SQLite, vous pouvez exécuter une instruction SQL à l'aide de l'objet de connexion.
cursor = conn.cursor() // database objects
cursor.execute('''CREATE TABLE IF NOT EXISTS customer ( id Number,
FirstName TEXT,
LastName TEXT,
Gender TEXT,
Country TEXT,
Age Number
)''')
cursor = conn.cursor() // database objects
cursor.execute('''CREATE TABLE IF NOT EXISTS customer ( id Number,
FirstName TEXT,
LastName TEXT,
Gender TEXT,
Country TEXT,
Age Number
)''')
PYTHON
L'extrait de code ci-dessus initialise un objet curseur pour exécuter des commandes SQL dans la connexion à la base de données SQLite. Il crée une table nommée "client" avec les colonnes "id", "FirstName", "LastName", "Gender", "Country" et "Age". La table est créée si elle n'existe pas encore, en respectant les types de données spécifiés pour les colonnes.
É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.
for i in range(2, 11):
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
)
cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
conn.commit()
for i in range(2, 11):
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
)
cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
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 alors une commande SQL INSERT, incorporant le tuple de valeurs dans la table. Ce processus se répète pour chaque ligne, ce qui permet d'importer les données du fichier Excel dans la base de données SQLite. Enfin, conn.commit() valide la transaction, garantissant que les changements sont enregistrés et conservés 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é insérées correctement, vous pouvez lire les données de la table "client" dans la base de données SQLite à l'aide d'une requête SELECT. Par exemple :
cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print the rows
for row in rows:
print(row)
conn.close()
cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print the rows
for row in rows:
print(row)
conn.close()
PYTHON
Le code ci-dessus exécute une requête SELECT sur la table "client" 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' en utilisant la méthode fetchall(). Ensuite, chaque ligne est imprimée de manière itérative, en affichant les données insérées dans le tableau "client". Enfin, la connexion à la base de données est fermée en utilisant la méthode close() pour libérer les ressources.
Le code complet est le suivant :
import sqlite3
from ironxl import * # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024";
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')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS customer ( id Number,
FirstName TEXT,
LastName TEXT,
Gender TEXT,
Country TEXT,
Age Number
)''')
cursor.execute("DELETE FROM customer")
for i in range(2, 11):
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
)
cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
conn.commit()
cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print the rows
for row in rows:
print(row)
conn.close()
import sqlite3
from ironxl import * # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024";
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')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS customer ( id Number,
FirstName TEXT,
LastName TEXT,
Gender TEXT,
Country TEXT,
Age Number
)''')
cursor.execute("DELETE FROM customer")
for i in range(2, 11):
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
)
cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
conn.commit()
cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print the rows
for row in rows:
print(row)
conn.close()
PYTHON
Conclusion
En conclusion, ce tutoriel a démontré qu'une approche automatisée de la lecture des données libère tout son potentiel pour les efforts de gestion des données. Profitez de la puissance de Python et d'IronXL pour optimiser vos flux de traitement de données et propulser vos projets en toute confiance.
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT Comment insérer des lignes dans un fichier Excel à l'aide de Python
SUIVANT > Comment éditer des fichiers Excel en Python