Passer au contenu du pied de page
COMPARER à D'AUTRES COMPOSANTS

Une comparaison entre OpenpyXL Python & IronXL pour Python

Dans cet article, nous allons aborder deux bibliothèques Python largement utilisées pour la gestion des fichiers de tableur Excel : IronXL et OpenPyXL. Ces bibliothèques sont importantes pour les développeurs Python qui ont besoin de manipuler, d'analyser ou de créer des documents de type fichier Excel. Chaque bibliothèque offre des fonctionnalités uniques pour faciliter la gestion des fichiers Excel de manière plus efficace et efficiente.

IronXL et OpenPyXL offrent aux développeurs la possibilité d'automatiser les opérations sur les feuilles de calcul, de modifier les cellules des feuilles Excel et d'extraire des exemples de données. Ils prennent également en charge des fonctionnalités avancées telles que la création de formules, la mise en forme des cellules et la gestion transparente de grands ensembles de données. Cela garantit que les applications peuvent gérer efficacement les fichiers Excel dans différents environnements sans compromettre les performances ni la compatibilité.

Dans cette comparaison, nous explorerons les caractéristiques uniques de chaque bibliothèque et leur fonctionnement. Nous aborderons également les détails de leur licence. Examinons les différences et les fonctionnalités d'IronXL et d'OpenPyXL, en nous concentrant sur des informations claires et utiles pour les développeurs.

1. Bibliothèque OpenPyXL

OpenPyXL est une bibliothèque Python conçue spécifiquement pour la gestion des fichiers Excel au format XLSX. La bibliothèque permet aux développeurs de lire, d'écrire et de modifier des fichiers Excel. Le module OpenPyXL prend en charge diverses fonctionnalités d'Excel, notamment la manipulation et la mise en forme des données, ainsi que des fonctionnalités avancées telles que les graphiques et les tableaux croisés dynamiques.

1.1 Principales caractéristiques d'OpenPyXL

1.1.1 Gestion des feuilles de calcul

OpenPyXL excelle dans la création et l'édition de classeurs. Il vous permet de commencer avec un classeur vierge ou de modifier un classeur existant, d'ajouter ou de supprimer des feuilles et de naviguer facilement entre elles. Cela le rend idéal pour des tâches allant de la génération de rapports à l'automatisation de la saisie de données.

1.1.2 Manipulation des données

Cette bibliothèque prend en charge des fonctionnalités avancées de gestion des données telles que l'ajout de lignes, l'insertion de formules et l'application de styles à la feuille active. Vous pouvez manipuler de grands ensembles de données en définissant les valeurs des cellules par programmation, ce qui simplifie des tâches telles que l'analyse des données et la génération de rapports.

1.1.3 Style et mise en forme

Avec OpenPyXL, vous pouvez appliquer une mise en forme aux cellules, comme des polices, des couleurs et des bordures. Il prend également en charge la mise en forme conditionnelle et la définition des propriétés des cellules, telles que l'alignement, qui sont essentielles pour créer des rapports Excel de style professionnel.

1.1.4 Graphiques et images

OpenPyXL permet d'ajouter des éléments graphiques aux feuilles de calcul. Vous pouvez insérer des graphiques pour visualiser les données et même ajouter des images pour améliorer la présentation des informations. Cette fonctionnalité est particulièrement utile pour la création de tableaux de bord et de rapports complexes.

1.1.5 Intégration de formules et de fonctions

La bibliothèque permet l'intégration de formules Excel dans les cellules, autorisant ainsi des calculs automatisés au sein des feuilles de calcul. Il permet également de créer des plages nommées, ce qui peut s'avérer très pratique pour organiser les données et créer des feuilles de calcul plus lisibles et plus faciles à maintenir.

1.1.6 Validation et automatisation des données

OpenPyXL fournit des outils de validation et de tri des données, essentiels pour maintenir l'intégrité des données et organiser efficacement l'information. Il offre également des fonctionnalités de filtrage des données, facilitant ainsi la gestion de grands volumes de données dans les fichiers Excel.

1.1.7 Source ouverte

En tant que bibliothèque open-source, OpenPyXL bénéficie des contributions continues d'une communauté dynamique, ce qui garantit sa pertinence et sa richesse en fonctionnalités. Cette implication de la communauté offre un vaste réservoir de ressources et de soutien aux développeurs utilisant la bibliothèque.

2. Bibliothèque IronXL

IronXL est une bibliothèque Python robuste conçue pour manipuler des fichiers Excel sans avoir besoin de Microsoft Excel. Il est apprécié pour sa simplicité et son efficacité dans la gestion de diverses tâches Excel directement au sein d'environnements Python.

2.1 Principales caractéristiques d'IronXL

2.1.1 Gestion des classeurs

IronXL simplifie la création, le chargement et l'enregistrement de formats Excel tels que XLS, XLSX et CSV, entre autres. Il assure la compatibilité avec différentes versions d'Excel et offre des fonctionnalités complètes pour la gestion programmatique des données Excel.

2.1.2 Manipulation des données

Avec IronXL, vous pouvez trier efficacement les données, gérer les lignes et les colonnes et personnaliser la mise en forme des cellules. Cela inclut la configuration des types de données et des formules, et même l'implémentation de fonctions Excel dans les cellules.

2.1.3 Mise en forme avancée

IronXL offre de nombreuses options de style pour les cellules , notamment la définition des polices, des bordures et des couleurs d'arrière-plan. Il prend en charge des fonctionnalités Excel avancées telles que la mise en forme conditionnelle et la configuration des options d'impression des feuilles de calcul, améliorant ainsi la lisibilité et la présentation de vos rapports Excel.

2.1.4 Fonctionnalités de sécurité

La bibliothèque permet de modifier les métadonnées, de gérer les autorisations et de protéger les fichiers par mot de passe, garantissant ainsi la protection des données sensibles.

2.1.5 Prise en charge multiplateforme

IronXL est conçu pour fonctionner sur plusieurs systèmes d'exploitation, notamment Windows, macOS et Linux, garantissant ainsi aux développeurs la possibilité de déployer leurs applications sur différentes plateformes sans problèmes de compatibilité.

2.1.6 Opérations sur les feuilles et les cellules

IronXL offre des fonctions robustes pour la gestion des gammes de feuilles et des cellules individuelles. Vous pouvez facilement fusionner, copier et manipuler des plages de cellules. Cette fonctionnalité simplifie la gestion des configurations de données complexes.

2.1.7 Intégration aux systèmes de données

IronXL s'intègre parfaitement aux bases de données et aux sources de données. Il prend en charge l'importation et l'exportation de données depuis et vers des fichiers Excel. Cette fonctionnalité est essentielle pour les applications qui nécessitent des rapports et des analyses de données dynamiques.

3. Configurer le projet dans Visual Studio Code

Pour commencer à tester les bibliothèques IronXL et OpenPyXL, nous devons configurer un projet dans Visual Studio Code, spécifiquement adapté au développement Python.

3.1 Prérequis

Avant de commencer, assurez-vous que Visual Studio Code est installé sur votre ordinateur. Il est également nécessaire d'avoir Python installé, ainsi que l'extension Python pour Visual Studio Code. Cette extension peut être ajoutée directement depuis la vue Extensions de Visual Studio Code.

3.2 Configuration du projet

Commencez par créer un nouveau dossier sur votre système, qui servira d'espace de travail pour votre projet. Vous pouvez le faire facilement en utilisant l'option Ouvrir un dossier du menu Fichier de VS Code.

3.3 Configuration de l'environnement

Dans Visual Studio Code, il est conseillé de configurer un environnement virtuel pour gérer proprement les dépendances. Vous pouvez le faire en utilisant le terminal intégré de Visual Studio Code. Visual Studio Code fournit également une interface dans l'extension Python pour simplifier ce processus. Grâce à la palette de commandes de l'extension Python, vous pouvez créer et activer un environnement virtuel sans avoir à saisir les commandes manuellement.

Dans VS Code, appuyez sur Ctrl+Shift+P , recherchez " Python : Créer un environnement " et cliquez dessus.

Comparaison entre OpenpyXL Python et IronXL pour Python : Figure 1 - Configuration de l'environnement

Sélectionnez un type d'environnement dans la liste déroulante. Dans notre cas, ce sera " .venv " :

Comparaison entre OpenpyXL Python et IronXL pour Python : Figure 2 - .venv

Ensuite, sélectionnez le chemin d'accès à l'interpréteur Python :

Comparaison entre OpenpyXL Python et IronXL pour Python : Figure 3 - Chemin de l'interpréteur

Cela créera l'environnement virtuel Python dans le dossier.

Comparaison entre OpenpyXL Python et IronXL pour Python : Figure 4 - Environnement virtuel

4. Installez la bibliothèque IronXL pour Python

L'installation de la bibliothèque IronXL dans Visual Studio Code est un processus simple. IronXL est particulièrement utile car il ne nécessite pas l'installation de Microsoft Office, fonctionnant plutôt sur le framework .NET.

4.1 Prérequis

Avant d'installer IronXL , assurez-vous que votre environnement est déjà configuré avec Python et Visual Studio Code. Il est important d'avoir le runtime .NET 6.0 installé sur votre machine car IronXL dépend des technologies .NET pour fonctionner. Pour les systèmes qui ne sont pas déjà équipés de .NET, tels que Linux ou macOS, vous devrez peut-être le télécharger depuis le site web officiel de .NET.

4.2 Étapes d'installation

Pour installer IronXL, utilisez le gestionnaire de paquets pip, qui simplifie l'installation des bibliothèques Python. Suivez ces étapes dans le terminal de Visual Studio Code :

  1. Ouvrez le terminal : Accédez au terminal via Visual Studio Code en utilisant le raccourci Ctrl+` ou en naviguant vers Terminal > Nouveau terminal dans le menu supérieur.
  2. Exécutez la commande d'installation Pip : Dans le terminal, saisissez la commande suivante et appuyez sur Entrée :

     pip install IronXL

    La commande pip install ci-dessus téléchargera et installera la bibliothèque IronXL ainsi que toutes les dépendances nécessaires à son fonctionnement.

Comparaison entre OpenpyXL pour Python et IronXL pour Python : Figure 5 - IronXL

  1. Confirmer l'installation : Une fois le processus d'installation terminé, vous pouvez vérifier qu'IronXL est correctement installé en essayant de l'importer dans un nouveau script Python :

    from ironxl import *
    from ironxl import *
    PYTHON

    Si aucune erreur ne s'affiche, la bibliothèque est installée avec succès et prête à l'emploi.

4.3 Considérations supplémentaires

Lors de l'installation d'IronXL, si vous rencontrez des problèmes liés aux dépendances ou à la compatibilité avec .NET, assurez-vous que toutes les exigences système sont respectées, comme indiqué dans la documentation d'IronXL. Il peut être nécessaire d'ajuster les chemins système ou d'installer des bibliothèques de support supplémentaires en fonction de votre système d'exploitation.

En suivant ces instructions, IronXL sera installé dans votre environnement Python de Visual Studio Code, ce qui vous permettra de bénéficier de capacités améliorées de manipulation de fichiers Excel et de traitement des données au sein de vos projets Python.

5. Installez la bibliothèque Python OpenPyXL

5.1 Installation d'OpenPyXL

L'installation d'OpenPyXL peut être effectuée à l'aide de pip, le gestionnaire de paquets de Python. Il est recommandé d'installer cette bibliothèque dans un environnement virtuel afin d'éviter les conflits avec d'autres projets Python ou des packages système.

  1. Installation d'OpenPyXL avec pip : Ouvrez l'interface de ligne de commande (CLI) dans Visual Studio Code ou votre environnement Python préféré. Saisissez la commande suivante :

    pip install openpyxl
    pip install openpyxl
    SHELL

    Cette commande télécharge et installe la bibliothèque OpenPyXL ainsi que toutes les dépendances nécessaires.

Comparaison entre OpenPyXL pour Python et IronXL pour Python : Figure 6 - OpenPyXL

  1. Dépendances optionnelles : Pour une utilisation avancée, comme l'inclusion d'images ou le travail avec des fichiers volumineux, OpenPyXL suggère d'installer des bibliothèques supplémentaires comme lxml et Pillow . Pour les installer, utilisez :

    pip install lxml pillow
    pip install lxml pillow
    SHELL

5.2 Vérification de l'installation

Après l'installation, vous pouvez vérifier qu'OpenPyXL est correctement installé en tentant d'importer le module OpenPyXL dans votre script Python :

from openpyxl import Workbook

wb = Workbook()
from openpyxl import Workbook

wb = Workbook()
PYTHON

Si le code ci-dessus s'exécute sans erreur, OpenpyXL est prêt à être utilisé dans vos projets. En suivant ces étapes, vous pouvez facilement configurer OpenPyXL et commencer à automatiser les opérations sur les fichiers Excel dans vos applications Python.

6. Comparaison des fonctionnalités avancées d'IronXL et d'OpenPyXL

6.1 Fonctionnalités avancées d'IronXL

IronXL est une bibliothèque Python complète conçue pour améliorer la manipulation des fichiers Excel. Cet outil simplifie le processus de création, de modification et de gestion des fichiers Excel au sein des applications Python, offrant une gamme de fonctionnalités répondant à divers besoins, des opérations de base sur les feuilles de calcul à la gestion avancée des données.

6.1.1 Importation et exportation de données

IronXL excelle dans la gestion de différents formats Excel, notamment XLS, XLSX et CSV. Les utilisateurs peuvent facilement importer des exemples de données à partir de ces formats ou exporter des feuilles de calcul vers ces formats, ce qui facilite les échanges de données et les solutions de reporting polyvalentes. Vous pouvez également sélectionner la feuille active pour travailler sur une feuille spécifique.

from ironxl import *     

workbook = WorkBook.Load("sample.csv")
workbook2 = WorkBook.Load("sample.xlsx")
workbook3 = WorkBook.Load("sample.xls")
from ironxl import *     

workbook = WorkBook.Load("sample.csv")
workbook2 = WorkBook.Load("sample.xlsx")
workbook3 = WorkBook.Load("sample.xls")
PYTHON

6.1.2 Assistance pour les formules et les calculs

La bibliothèque prend en charge les formules Excel , permettant d'effectuer des calculs directement dans la feuille Excel. À chaque modification d'une feuille de calcul, les formules sont automatiquement recalculées, garantissant ainsi la cohérence et l'exactitude des données.

from ironxl import *     

# Create a new Excel workbook
new_workbook = WorkBook()
# Add a worksheet to the workbook
new_worksheet = new_workbook.CreateWorkSheet("NewSheet")

# Set new formulas with different logic
new_worksheet["A1"].Formula = "Average(D1:D5)"
new_worksheet["D1"] = 10
new_worksheet["D2"] = 20
new_worksheet["D3"] = 30
new_worksheet["D4"] = 40
new_worksheet["D5"] = 50
new_worksheet["B1"].Formula = "=D3*D4"
new_worksheet["C1"].Formula = "Min(D1:D5)"

# Force recalculate all formulas in the workbook
new_workbook.EvaluateAll()

# Get the calculated values for each formula
average_value = new_worksheet["A1"].ToArray()[0].FormattedCellValue
product_value = new_worksheet["B1"].ToArray()[0].FormattedCellValue
min_value = new_worksheet["C1"].ToArray()[0].FormattedCellValue

# Save the new workbook to a file with updated formulas and calculated values
new_workbook.SaveAs("sample.xlsx")
from ironxl import *     

# Create a new Excel workbook
new_workbook = WorkBook()
# Add a worksheet to the workbook
new_worksheet = new_workbook.CreateWorkSheet("NewSheet")

# Set new formulas with different logic
new_worksheet["A1"].Formula = "Average(D1:D5)"
new_worksheet["D1"] = 10
new_worksheet["D2"] = 20
new_worksheet["D3"] = 30
new_worksheet["D4"] = 40
new_worksheet["D5"] = 50
new_worksheet["B1"].Formula = "=D3*D4"
new_worksheet["C1"].Formula = "Min(D1:D5)"

# Force recalculate all formulas in the workbook
new_workbook.EvaluateAll()

# Get the calculated values for each formula
average_value = new_worksheet["A1"].ToArray()[0].FormattedCellValue
product_value = new_worksheet["B1"].ToArray()[0].FormattedCellValue
min_value = new_worksheet["C1"].ToArray()[0].FormattedCellValue

# Save the new workbook to a file with updated formulas and calculated values
new_workbook.SaveAs("sample.xlsx")
PYTHON

Comparaison entre OpenpyXL Python et IronXL pour Python : Figure 7 - Écriture de données à partir du résultat de la formule

6.1.3 Mise en forme avancée des cellules

IronXL offre de nombreuses options de formatage de cellules. Les utilisateurs peuvent ajuster les polices, les tailles, les arrière-plans, les bordures et l'alignement directement dans une feuille de calcul Excel grâce au code. Cette fonctionnalité permet de préparer des présentations de données et des rapports qui nécessitent des consignes stylistiques spécifiques.

from ironxl import *     

License.LicenseKey = "License Code";

workbook = WorkBook()
new_worksheet = workbook.CreateWorkSheet("FinanceData")

selected_range = new_worksheet["B2:B6"]
new_worksheet["B2"].Value = "Revenue"
new_worksheet["B3"].Value = 150000
new_worksheet["B4"].Value = 200000
new_worksheet["B5"].Value = 180000
new_worksheet["B6"].Value = 220000

selected_range.Style.SetBackgroundColor("#4CAF50")
selected_range.Style.Font.Underline = FontUnderlineType.Single
selected_range.Style.Font.Strikeout = False
selected_range.Style.Font.Bold = True
selected_range.Style.Font.Italic = False

selected_range.Style.TopBorder.Type = BorderType.Thin
selected_range.Style.BottomBorder.Type = BorderType.Thin
selected_range.Style.LeftBorder.Type = BorderType.Thin
selected_range.Style.RightBorder.Type = BorderType.Thin

selected_range.Style.TopBorder.SetColor("#000000")
selected_range.Style.BottomBorder.SetColor("#000000")
selected_range.Style.LeftBorder.SetColor("#000000")
selected_range.Style.RightBorder.SetColor("#000000")

selected_range.Style.VerticalAlignment = VerticalAlignment.Center
selected_range.Style.HorizontalAlignment = HorizontalAlignment.Center
selected_range.Style.FillPattern = FillPattern.LessDots
selected_range.Style.Indention = 0
selected_range.Style.WrapText = True

# Save the new workbook to a file with updated formulas and calculated values
workbook.SaveAs("styled.xlsx")
from ironxl import *     

License.LicenseKey = "License Code";

workbook = WorkBook()
new_worksheet = workbook.CreateWorkSheet("FinanceData")

selected_range = new_worksheet["B2:B6"]
new_worksheet["B2"].Value = "Revenue"
new_worksheet["B3"].Value = 150000
new_worksheet["B4"].Value = 200000
new_worksheet["B5"].Value = 180000
new_worksheet["B6"].Value = 220000

selected_range.Style.SetBackgroundColor("#4CAF50")
selected_range.Style.Font.Underline = FontUnderlineType.Single
selected_range.Style.Font.Strikeout = False
selected_range.Style.Font.Bold = True
selected_range.Style.Font.Italic = False

selected_range.Style.TopBorder.Type = BorderType.Thin
selected_range.Style.BottomBorder.Type = BorderType.Thin
selected_range.Style.LeftBorder.Type = BorderType.Thin
selected_range.Style.RightBorder.Type = BorderType.Thin

selected_range.Style.TopBorder.SetColor("#000000")
selected_range.Style.BottomBorder.SetColor("#000000")
selected_range.Style.LeftBorder.SetColor("#000000")
selected_range.Style.RightBorder.SetColor("#000000")

selected_range.Style.VerticalAlignment = VerticalAlignment.Center
selected_range.Style.HorizontalAlignment = HorizontalAlignment.Center
selected_range.Style.FillPattern = FillPattern.LessDots
selected_range.Style.Indention = 0
selected_range.Style.WrapText = True

# Save the new workbook to a file with updated formulas and calculated values
workbook.SaveAs("styled.xlsx")
PYTHON

Comparaison entre OpenpyXL Python et IronXL pour Python : Figure 8 - Formatage des cellules

6.1.4 Validation et tri des données

Pour renforcer l'intégrité des données, IronXL intègre des fonctionnalités de validation des données. Il offre également des fonctionnalités de tri robustes pour les plages, les colonnes et les lignes, facilitant ainsi l'organisation et l'analyse de grands ensembles de données.

6.1.5 Sécurité des documents

Les fonctionnalités de sécurité d'IronXL incluent la possibilité de chiffrer et de déchiffrer les fichiers Excel. Cela garantit que les informations sensibles sont protégées et accessibles uniquement aux utilisateurs autorisés.

from ironxl import *     

# Load a different Excel workbook
workbook = WorkBook.Load("data_file.xlsx")
worksheet = workbook.DefaultWorkSheet

# Open a different protected spreadsheet file
protected_workbook = WorkBook.Load("protected_data.xlsx", "ExcelSecure")

# Apply encryption to the spreadsheet file
workbook.Encrypt("ExcelSecure")

# Clear any existing password protection
workbook.Password = None

# Save changes to the workbook
workbook.Save()

worksheet.ProtectSheet("SheetSecure")
worksheet.UnprotectSheet()
workbook.Save()
from ironxl import *     

# Load a different Excel workbook
workbook = WorkBook.Load("data_file.xlsx")
worksheet = workbook.DefaultWorkSheet

# Open a different protected spreadsheet file
protected_workbook = WorkBook.Load("protected_data.xlsx", "ExcelSecure")

# Apply encryption to the spreadsheet file
workbook.Encrypt("ExcelSecure")

# Clear any existing password protection
workbook.Password = None

# Save changes to the workbook
workbook.Save()

worksheet.ProtectSheet("SheetSecure")
worksheet.UnprotectSheet()
workbook.Save()
PYTHON

Comparaison entre OpenpyXL Python et IronXL pour Python : Figure 9 - Sortie d'un objet classeur protégé par mot de passe

6.1.6 Capacités de conversion

IronXL ne se limite pas à la gestion des fichiers Excel tels que les fichiers XLSX, XLSM, XLTX et XLTM. Il peut également convertir des documents Excel aux formats JSON, XML, HTML ou binaire, élargissant ainsi les possibilités d'utilisation des données sur différentes plateformes et environnements de programmation.

from ironxl import *     

workbook = WorkBook.Create()
worksheet = workbook.CreateWorkSheet("Sheet1")

worksheet["B1"].Value = "Sample Text"
worksheet["B2"].Style.BottomBorder.SetColor("#0077CC")

workbook.SaveAs("output.xls")
workbook.SaveAs("output.xlsx")
workbook.SaveAs("output.tsv")
workbook.SaveAsCsv("output.csv")
workbook.SaveAsJson("output.json")
workbook.SaveAsXml("output.xml")
workbook.ExportToHtml("output.html")
from ironxl import *     

workbook = WorkBook.Create()
worksheet = workbook.CreateWorkSheet("Sheet1")

worksheet["B1"].Value = "Sample Text"
worksheet["B2"].Style.BottomBorder.SetColor("#0077CC")

workbook.SaveAs("output.xls")
workbook.SaveAs("output.xlsx")
workbook.SaveAs("output.tsv")
workbook.SaveAsCsv("output.csv")
workbook.SaveAsJson("output.json")
workbook.SaveAsXml("output.xml")
workbook.ExportToHtml("output.html")
PYTHON

6.1.7 Gestion des feuilles et des classeurs

La bibliothèque simplifie la gestion des classeurs en permettant aux utilisateurs de créer, charger et manipuler des classeurs entiers ou des feuilles de calcul individuelles. Cela inclut l'ajout ou la suppression de feuilles, ainsi que la configuration de la visibilité des feuilles et des paramètres d'impression.

from ironxl import *     

# Load the Excel workbook
workbook = WorkBook.Load("sample.xlsx")

# Create a new worksheet
new_worksheet = workbook.CreateWorkSheet("NewSheet")

# Fill data into the new worksheet
for i in range(1, 21):
    new_worksheet[f"A{i}"].Value = f"Data {i}"
    new_worksheet[f"B{i}"].Value = 21 - i
    new_worksheet[f"C{i}"].Value = i % 5
    new_worksheet[f"D{i}"].Value = (i * 3) % 7

# Select a range in the new worksheet
selected_range = new_worksheet["A1:D20"]

# Select column B in the new worksheet
column = new_worksheet.GetColumn(1)

# Sort the range in ascending order based on column A
selected_range.SortAscending()

# Sort the range by column C in ascending order
selected_range.SortByColumn("C", SortOrder.Ascending)

# Sort column B in descending order
column.SortDescending()

# Save the changes
workbook.SaveAs("sortedExcelRange.xlsx")
from ironxl import *     

# Load the Excel workbook
workbook = WorkBook.Load("sample.xlsx")

# Create a new worksheet
new_worksheet = workbook.CreateWorkSheet("NewSheet")

# Fill data into the new worksheet
for i in range(1, 21):
    new_worksheet[f"A{i}"].Value = f"Data {i}"
    new_worksheet[f"B{i}"].Value = 21 - i
    new_worksheet[f"C{i}"].Value = i % 5
    new_worksheet[f"D{i}"].Value = (i * 3) % 7

# Select a range in the new worksheet
selected_range = new_worksheet["A1:D20"]

# Select column B in the new worksheet
column = new_worksheet.GetColumn(1)

# Sort the range in ascending order based on column A
selected_range.SortAscending()

# Sort the range by column C in ascending order
selected_range.SortByColumn("C", SortOrder.Ascending)

# Sort column B in descending order
column.SortDescending()

# Save the changes
workbook.SaveAs("sortedExcelRange.xlsx")
PYTHON

Comparaison entre OpenpyXL Python et IronXL pour Python : Figure 10 - Sortie de gestion des feuilles

6.1.8 Insérer de nouvelles lignes et colonnes

IronXL permet aux utilisateurs d' insérer dynamiquement de nouvelles lignes et colonnes dans des feuilles de calcul Excel existantes. Cette fonctionnalité est particulièrement utile pour modifier les structures de données en fonction de l'évolution des besoins sans perturber la mise en page générale de la feuille de calcul.

# Add a row before second row
worksheet.InsertRow(1)
# Insert multiple rows before 5th Row
worksheet.InsertRows(4, 4)
# Add a column before column C
worksheet.InsertColumn(2)
# Insert multiple columns before column B
worksheet.InsertColumns(1, 3)
# Add a row before second row
worksheet.InsertRow(1)
# Insert multiple rows before 5th Row
worksheet.InsertRows(4, 4)
# Add a column before column C
worksheet.InsertColumn(2)
# Insert multiple columns before column B
worksheet.InsertColumns(1, 3)
PYTHON

6.1.9 Grouper et dégrouper les lignes et les colonnes

Avec IronXL, les utilisateurs peuvent grouper ou dégrouper des lignes et des colonnes . Cette fonctionnalité améliore l'organisation des données, facilitant la navigation et la gestion des ensembles de données complexes en réduisant et en développant les données groupées selon les besoins.

6.1.10 Répéter les lignes et les colonnes Excel

IronXL prend en charge la répétition des lignes et des colonnes sur plusieurs pages d'un classeur. Ceci est utile pour créer des en-têtes ou des pieds de page qui doivent apparaître sur chaque page imprimée d'un document Excel, garantissant ainsi une présentation et une lisibilité cohérentes.

# Configure rows 2 to 5 to repeat at the top of each printed page
worksheet.SetRepeatingRows(1, 4)
# Configure columns D to F to repeat on the left side of each printed page
worksheet.SetRepeatingColumns(3, 5)
# Insert a page break after column J so that columns A-J appear on the first printed page
worksheet.SetColumnBreak(9)
# Configure rows 2 to 5 to repeat at the top of each printed page
worksheet.SetRepeatingRows(1, 4)
# Configure columns D to F to repeat on the left side of each printed page
worksheet.SetRepeatingColumns(3, 5)
# Insert a page break after column J so that columns A-J appear on the first printed page
worksheet.SetColumnBreak(9)
PYTHON

6.1.11 Copier les feuilles de calcul Excel

Avec IronXL, les utilisateurs peuvent dupliquer des feuilles de calcul existantes au sein du même classeur. Cette fonctionnalité permet de gagner du temps lors de la création de plusieurs feuilles partageant un format commun ou lors de la sauvegarde de données importantes. C'est très utile pour la copie de données.

# Duplicate the worksheet to the same workbook
worksheet.CopySheet("Copied Sheet")
# Duplicate the worksheet to another workbook with the specified name
worksheet.CopyTo(second_book, "Copied Sheet")
# Duplicate the worksheet to the same workbook
worksheet.CopySheet("Copied Sheet")
# Duplicate the worksheet to another workbook with the specified name
worksheet.CopyTo(second_book, "Copied Sheet")
PYTHON

6.1.12 Ajouter, extraire et supprimer des images de feuilles de calcul

IronXL offre la possibilité d' ajouter des images aux feuilles de calcul , d'en extraire ou de supprimer des images. Cela améliore l'attrait visuel des feuilles de calcul et s'avère utile pour les rapports contenant des données graphiques, des logos ou des images explicatives.

6.2 Fonctionnalités avancées d'OpenPyXL

6.2.1 Mise en forme conditionnelle

OpenPyXL permet la mise en forme conditionnelle, vous permettant de modifier le style des cellules en fonction des données qu'elles contiennent. Cela peut inclure la définition de couleurs en fonction de valeurs numériques ou l'application de polices et de styles différents selon des conditions spécifiques, améliorant ainsi la présentation visuelle des données.

from openpyxl import Workbook
from openpyxl.formatting.rule import ColorScaleRule

wb = Workbook()
ws = wb.active

color_scale = ColorScaleRule(start_type='num', start_value=10, start_color='FF0000',
                             end_type='num', end_value=20, end_color='00FF00')
ws.conditional_formatting.add('A1:A10', color_scale)

wb.save('conditional_formatting.xlsx')
from openpyxl import Workbook
from openpyxl.formatting.rule import ColorScaleRule

wb = Workbook()
ws = wb.active

color_scale = ColorScaleRule(start_type='num', start_value=10, start_color='FF0000',
                             end_type='num', end_value=20, end_color='00FF00')
ws.conditional_formatting.add('A1:A10', color_scale)

wb.save('conditional_formatting.xlsx')
PYTHON

6.2.2 Validation des données

Avec OpenPyXL, vous pouvez implémenter la validation des données pour contrôler le type de données saisies dans les cellules. Cela inclut la configuration de listes déroulantes, la limitation des entrées à une certaine plage de dates ou de nombres et la génération de messages d'erreur pour les entrées invalides, ce qui contribue à maintenir l'intégrité des données.

from openpyxl import Workbook
from openpyxl.worksheet.datavalidation import DataValidation

wb = Workbook()
ws = wb.active

dv = DataValidation(type="list", formula1='"Item1,Item2,Item3"', allow_blank=True)
ws.add_data_validation(dv)
dv.add('A1')
ws['A1'] = 'Item1'

wb.save('data_validation.xlsx')
from openpyxl import Workbook
from openpyxl.worksheet.datavalidation import DataValidation

wb = Workbook()
ws = wb.active

dv = DataValidation(type="list", formula1='"Item1,Item2,Item3"', allow_blank=True)
ws.add_data_validation(dv)
dv.add('A1')
ws['A1'] = 'Item1'

wb.save('data_validation.xlsx')
PYTHON

Comparaison entre OpenpyXL Python et IronXL pour Python : Figure 11 - Résultats de la validation des données

6.2.3 Graphiques

La bibliothèque prend en charge la création et la personnalisation de différents types de graphiques tels que les graphiques linéaires, à barres, circulaires et de dispersion. Cette fonctionnalité permet la visualisation des données directement dans les feuilles Excel, facilitant ainsi une meilleure analyse et un meilleur reporting des données. Nous indiquons la ligne du graphique et sélectionnons les valeurs de référence à afficher.

from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

wb = Workbook()
ws = wb.active

for i in range(10):
    ws.append([i])

values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart = BarChart()
chart.add_data(values)
ws.add_chart(chart, "E5")

wb.save("chart.xlsx")
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

wb = Workbook()
ws = wb.active

for i in range(10):
    ws.append([i])

values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart = BarChart()
chart.add_data(values)
ws.add_chart(chart, "E5")

wb.save("chart.xlsx")
PYTHON

Comparaison entre OpenpyXL Python et IronXL pour Python : Figure 12 - Graphique de sortie

6.2.4 Fusion et séparation des cellules

OpenPyXL offre la possibilité de fusionner plusieurs cellules pour créer une seule cellule plus grande, ce qui est souvent utile pour la mise en forme des titres ou l'organisation des données. Cela permet également, si nécessaire, de séparer ces cellules ou de les diviser à nouveau en cellules individuelles.

6.2.5 Lecture et écriture de commentaires

Vous pouvez lire et écrire des commentaires dans les cellules, ce qui permet d'ajouter des notes ou des instructions au fichier Excel. Cette fonctionnalité est particulièrement utile pour les projets collaboratifs où il est nécessaire de partager des notes et des consignes entre les utilisateurs.

from openpyxl import Workbook
from openpyxl.comments import Comment

wb = Workbook()
ws = wb.active

comment = Comment(text="This is a comment", author="Author")
ws['A1'].comment = comment

wb.save('comments.xlsx')
from openpyxl import Workbook
from openpyxl.comments import Comment

wb = Workbook()
ws = wb.active

comment = Comment(text="This is a comment", author="Author")
ws['A1'].comment = comment

wb.save('comments.xlsx')
PYTHON

6.2.6 Tableaux croisés dynamiques

La bibliothèque offre la possibilité de créer des tableaux croisés dynamiques à partir des données de vos feuilles de calcul. Cet outil puissant permet de résumer, d'analyser, d'explorer et de présenter vos données de manière exhaustive, facilitant ainsi la formulation de conclusions et la prise de décisions éclairées à partir de grands ensembles de données.

IronPDF est connu pour sa documentation détaillée et extensive.

7.1 Documentation et assistance pour IronXL pour Python

Documentation : IronXL fournit une documentation complète pour les développeurs Python. Il couvre un large éventail de sujets, notamment la lecture, l'écriture et la modification de documents Excel, la gestion des classeurs, la mise en forme des cellules et le tri des données par programmation. La documentation se veut simple et claire, et est complétée par de nombreux exemples de code pour aider les développeurs à intégrer rapidement les fonctionnalités d'IronXL dans leurs applications.

Assistance : IronXL propose des options d'assistance robustes. Les développeurs peuvent accéder à l'assistance via une section FAQ complète, une documentation détaillée en ligne et une assistance directe par e-mail. Pour toute question plus complexe ou pour obtenir une assistance immédiate, vous pouvez contacter directement leur équipe d'ingénierie.

7.2 Documentation et assistance OpenPyXL

Documentation : La documentation d'OpenPyXL est complète et bien organisée, offrant aux développeurs des guides sur tous les sujets, de la prise en main aux fonctionnalités avancées telles que les graphiques, la validation des données avec messages d'erreur et la mise en forme conditionnelle. La documentation comprend des explications détaillées et des extraits de code qui seront utiles aussi bien aux nouveaux utilisateurs qu'aux utilisateurs expérimentés.

Assistance : OpenPyXL fournit une assistance principalement via des forums communautaires et des outils de suivi des problèmes sur ses dépôts officiels. Les développeurs peuvent signaler les problèmes et contribuer à la bibliothèque sur GitHub, ce qui en fait un outil collaboratif et en constante évolution.

8. Informations relatives à la licence

Licence IronXL 8.1

IronXL propose plusieurs options de licences perpétuelles adaptées aux différents besoins des projets, garantissant ainsi aux développeurs la possibilité d'utiliser la bibliothèque dans divers environnements sans frais récurrents.

  • Licence Lite : Proposée au prix de $799 , cette option convient à 1 développeur, 1 emplacement et 1 projet. Elle inclut le support par e-mail.
  • Licence Plus : Cette option coûte 1 499 $ et étend la couverture à 3 développeurs, 3 emplacements et 3 projets. Elle comprend une assistance par e-mail, une assistance par chat 24h/24 et 7j/7 et une assistance téléphonique.
  • Licence professionnelle : à 2 999 $, il s'agit du forfait le plus complet, prenant en charge 10 développeurs, 10 sites et 10 projets. Elle offre les mêmes options d'assistance que la licence Plus, ainsi qu'une prise en charge du partage d'écran pour une assistance plus approfondie.

Les options supplémentaires comprennent :

  • Couverture de redistribution sans redevance : requise pour la distribution d'IronXL dans les logiciels packagés, les applications SaaS et les applications OEM. Cette option n'est pas disponible avec la licence Lite et doit être achetée avec les licences Plus ou Professionnelle.
  • Assistance et mises à jour étendues : Les développeurs peuvent opter pour une assistance et des mises à jour continues avec une option gratuite d'un an ou un forfait de 5 ans à 499 $. Ce forfait inclut les mises à jour des fonctionnalités de sécurité et une assistance directe de l'équipe d'ingénierie.

Chaque licence inclut également une garantie de remboursement de 30 jours, permettant aux développeurs de tester IronXL sans risque. Ces conditions de licence font d'IronXL une option flexible pour les projets de portée et de taille variées, offrant des voies claires pour sa mise en œuvre dans différents contextes professionnels.

Licence OpenPyXL 8.2

OpenPyXL est distribué sous la licence MIT, qui est une licence de logiciel libre permissive. Cela signifie qu'il permet une grande liberté d'utilisation, tant pour les logiciels libres que pour les logiciels propriétaires. La licence MIT autorise la réutilisation au sein de logiciels propriétaires à condition que toutes les copies du logiciel sous licence incluent une copie des termes de la licence MIT et de la mention de droit d'auteur.

9. Conclusion

Comparaison entre OpenpyXL Python et IronXL pour Python : Figure 13 - Licence

Dans notre analyse d'IronXL et d'OpenPyXL, nous avons examiné leurs fonctionnalités, leur facilité d'utilisation, leurs options de support et leurs licences. Ces deux bibliothèques sont excellentes pour la gestion des fichiers Excel, mais elles répondent à des besoins différents.

IronXL se distingue par ses nombreuses fonctionnalités permettant des manipulations Excel complexes sans nécessiter Microsoft Office. Il offre une documentation détaillée et un support technique performant, ce qui en fait un choix fiable pour les projets et les entreprises de grande envergure. Les data scientists utilisent IronXL à de multiples fins telles que la copie de données, l'exploration de données, l'analyse de données et bien d'autres tâches. Les licences IronXL commencent à $799 , mais elles incluent un essai gratuit. Cet essai permet aux développeurs de tester pleinement les capacités d'IronXL avant de procéder à un achat, ce qui représente un avantage majeur pour tout projet sérieux.

OpenPyXL est également puissant, notamment grâce à ses fonctionnalités Excel avancées telles que les graphiques linéaires et la mise en forme conditionnelle. Il est disponible sous la licence MIT, qui offre une grande flexibilité pour une utilisation à la fois open source et commerciale. Son support est assuré par la communauté, ce qui est formidable, mais il ne bénéficie pas du support structuré qu'offre IronXL.

Si votre projet exige des fonctionnalités avancées ainsi qu'un support professionnel et continu, IronXL est la solution idéale. Son coût initial peut être élevé, mais cet investissement est largement justifié par les avantages et la sécurité qu'elle offre, notamment pour les projets complexes ou de longue durée.

Veuillez noterOpenPyXL est une marque déposée de son propriétaire respectif. Ce site n'est ni affilié à, ni approuvé par, ni sponsorisé par OpenPyXL. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont faites à titre d'information uniquement et reflètent les informations publiquement disponibles au moment de la rédaction.

Questions Fréquemment Posées

Quelles sont les fonctions principales d'IronXL et d'OpenPyXL ?

IronXL et OpenPyXL sont tous deux conçus pour gérer les fichiers de tableur Excel, permettant aux développeurs d'effectuer des tâches telles que la lecture, l'écriture et la modification de documents Excel. Ils supportent des fonctionnalités avancées comme la création de formules, le style des cellules, et la gestion de grands ensembles de données.

Comment puis-je manipuler des fichiers Excel sans Microsoft Excel ?

IronXL vous permet de manipuler des fichiers Excel sans avoir besoin d'installer Microsoft Excel. Il fonctionne de manière indépendante sur le framework .NET, offrant des capacités robustes de manipulation de fichiers Excel sur plusieurs plateformes.

Quels sont les avantages d'utiliser IronXL pour la manipulation de fichiers Excel ?

IronXL offre des avantages tels que le support multiplateforme, le formatage avancé des cellules, la validation des données, la sécurité des documents, et les capacités de conversion vers divers formats comme JSON, XML, et HTML. Il convient aux projets complexes nécessitant des fonctionnalités complètes et un support professionnel.

OpenPyXL peut-il prendre en charge la création de graphiques et de tableaux croisés dynamiques ?

Oui, OpenPyXL supporte la création de divers types de graphiques et de tableaux croisés dynamiques, facilitant la visualisation des données et l'analyse complète des données directement dans les feuilles Excel.

Est-il nécessaire d'obtenir une licence commerciale pour utiliser IronXL ?

Oui, IronXL propose une licence commerciale avec diverses options de support, y compris une période d'essai, qui fournit un support technique solide et des capacités complètes pour la manipulation de fichiers Excel.

Comment OpenPyXL gère-t-il l'intégration des formules Excel ?

OpenPyXL peut gérer et évaluer des formules dans les feuilles Excel, permettant des opérations de données complexes et maintenant l'intégrité des données lors de la manipulation des fichiers.

Quelles options de support sont disponibles pour les utilisateurs d'OpenPyXL ?

OpenPyXL s'appuie sur un support communautaire via les forums et GitHub, offrant une approche collaborative pour le dépannage, tandis qu'IronXL fournit un support direct par email, chat, et téléphone.

Quels formats Excel IronXL supporte-t-il ?

IronXL supporte divers formats de fichiers Excel, permettant aux développeurs de travailler avec différents types de documents Excel et permettant des capacités de conversion étendues à travers plusieurs formats de données.

Comment IronXL et OpenPyXL diffèrent-ils en termes de compatibilité des plateformes ?

IronXL est compatible avec Windows, macOS, et Linux, offrant une polyvalence pour les applications à travers différents environnements opérationnels. OpenPyXL est principalement utilisé dans les environnements Python et se concentre sur la manipulation de fichiers XLSX.

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