Comment lire des fichiers Excel OpenOffice en C# sans avoir Excel installé ?
La lecture et le traitement des fichiers OpenDocument Spreadsheet (ODS) et Excel en C# sont simples lorsque vous utilisez la bibliothèque appropriée. Avec IronXL, vous chargez n'importe quel fichier XLS, XLSX, ODS ou CSV dans un objet WorkBook à l'aide d'un seul appel de méthode - pas d'installation de Microsoft Excel requise, pas d'enregistrement COM et pas de maux de tête liés à l'interopérabilité. Ce guide vous accompagne à chaque étape : installation du package, chargement des fichiers, extraction des valeurs des cellules saisies, utilisation des feuilles de calcul nommées, gestion des cellules fusionnées et déploiement sur des environnements Linux ou conteneurisés.
Comment installer IronXL dans un projet .NET ?
Installation du gestionnaire de packages NuGet
Ajoutez IronXL à votre projet via le gestionnaire de packages NuGet . Ouvrez la console du Package Manager dans Visual Studio et exécutez :
Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
IronXL cible .NET 8, .NET 9, .NET 10, .NET Framework 4.6.2+, et .NET Standard 2.0, de sorte qu'il s'adapte aussi bien aux bases de code modernes qu'anciennes. Une fois le paquet installé, ajoutez la directive using IronXL; en haut de n'importe quel fichier qui travaille avec des feuilles de calcul, et vous êtes prêt à charger votre premier classeur.
Pour Azure Functions, les conteneurs Docker ou les API hébergées sous Linux, aucune configuration d'exécution supplémentaire n'est requise. La bibliothèque intègre en interne tout ce dont elle a besoin et ne fait pas appel aux composants d'automatisation d'Excel.
Comment charger un fichier OpenOffice ou Excel en C# ?
IronXL traite les fichiers ODS, XLS, XLSX et CSV de manière identique grâce à la méthode WorkBook.Load. Vous indiquez un chemin de fichier absolu ou relatif, et la bibliothèque détecte le format à partir de l'en-tête du fichier, et pas seulement de son extension. Cela signifie qu'un fichier renommé de .ods à .xlsx est toujours lu correctement.
using IronXL;
// Load an OpenDocument Spreadsheet (.ods) produced by LibreOffice Calc or OpenOffice
WorkBook workbook = WorkBook.Load("quarterly_report.ods");
// Access the first worksheet by index
WorkSheet sheet = workbook.WorkSheets[0];
// Read a cell value
string companyName = sheet["A1"].StringValue;
int recordCount = sheet["B1"].IntValue;
Console.WriteLine($"Company : {companyName}");
Console.WriteLine($"Records : {recordCount}");
using IronXL;
// Load an OpenDocument Spreadsheet (.ods) produced by LibreOffice Calc or OpenOffice
WorkBook workbook = WorkBook.Load("quarterly_report.ods");
// Access the first worksheet by index
WorkSheet sheet = workbook.WorkSheets[0];
// Read a cell value
string companyName = sheet["A1"].StringValue;
int recordCount = sheet["B1"].IntValue;
Console.WriteLine($"Company : {companyName}");
Console.WriteLine($"Records : {recordCount}");
Imports IronXL
' Load an OpenDocument Spreadsheet (.ods) produced by LibreOffice Calc or OpenOffice
Dim workbook As WorkBook = WorkBook.Load("quarterly_report.ods")
' Access the first worksheet by index
Dim sheet As WorkSheet = workbook.WorkSheets(0)
' Read a cell value
Dim companyName As String = sheet("A1").StringValue
Dim recordCount As Integer = sheet("B1").IntValue
Console.WriteLine($"Company : {companyName}")
Console.WriteLine($"Records : {recordCount}")
La même commande fonctionne pour les fichiers XLSX et XLS ; il suffit de modifier le chemin d'accès. WorkBook.Load renvoie le même objet fortement typé quel que soit le format source, de sorte que le reste de votre code reste identique, que le fichier provienne de Microsoft Excel, de LibreOffice ou de toute autre application compatible ODF.
Comment lire chaque ligne et chaque cellule d'une feuille de calcul ?
Itération sur la collection Rows
L'itération sur toutes les lignes et cellules est la tâche de traitement Excel la plus courante - qu'il s'agisse de valider des données d'importation, de transformer des enregistrements ou d'alimenter un pipeline de rapports. IronXL expose une collection Rows sur chaque WorkSheet :
using IronXL;
WorkBook workbook = WorkBook.Load("customers.xlsx");
WorkSheet worksheet = workbook.WorkSheets[0];
Console.WriteLine($"Total rows : {worksheet.RowCount}");
Console.WriteLine($"Total columns : {worksheet.ColumnCount}");
Console.WriteLine();
foreach (var row in worksheet.Rows)
{
foreach (var cell in row)
{
if (!cell.IsEmpty)
Console.Write($"{cell.StringValue,-20}");
}
Console.WriteLine();
}
using IronXL;
WorkBook workbook = WorkBook.Load("customers.xlsx");
WorkSheet worksheet = workbook.WorkSheets[0];
Console.WriteLine($"Total rows : {worksheet.RowCount}");
Console.WriteLine($"Total columns : {worksheet.ColumnCount}");
Console.WriteLine();
foreach (var row in worksheet.Rows)
{
foreach (var cell in row)
{
if (!cell.IsEmpty)
Console.Write($"{cell.StringValue,-20}");
}
Console.WriteLine();
}
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("customers.xlsx")
Dim worksheet As WorkSheet = workbook.WorkSheets(0)
Console.WriteLine($"Total rows : {worksheet.RowCount}")
Console.WriteLine($"Total columns : {worksheet.ColumnCount}")
Console.WriteLine()
For Each row In worksheet.Rows
For Each cell In row
If Not cell.IsEmpty Then
Console.Write($"{cell.StringValue,-20}")
End If
Next
Console.WriteLine()
Next
Les propriétés RowCount et ColumnCount ne renvoient que la plage remplie - les lignes et colonnes vides ne sont pas incluses. La vérification de cell.IsEmpty avant la lecture permet d'éviter les traitements inutiles sur des feuilles peu nombreuses.
Pour les fichiers volumineux, envisagez d'utiliser l'accès par plage (worksheet["A1:D500"]) au lieu de l'itération par feuille entière. Cela limite le nombre de cellules chargées en mémoire et accélère le traitement lorsque vous n'avez besoin que d'un sous-ensemble des données.
Comment extraire les valeurs saisies dans les cellules ?
Accesseurs de propriété dactylographiés
Dans une feuille de calcul réelle, les cellules contiennent des chaînes de caractères, des entiers, des nombres décimaux, des booléens et des dates. IronXL expose des propriétés typées dédiées, vous n'aurez donc jamais à analyser manuellement des chaînes de caractères brutes :
using IronXL;
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.GetWorkSheet("Products");
// Typed accessors handle conversion automatically
string productName = sheet["A2"].StringValue;
int quantity = sheet["B2"].IntValue;
decimal unitPrice = sheet["C2"].DecimalValue;
bool inStock = sheet["D2"].BoolValue;
DateTime? lastAudit = sheet["E2"].DateTimeValue;
Console.WriteLine($"Product : {productName}");
Console.WriteLine($"Qty : {quantity}");
Console.WriteLine($"Price : {unitPrice:C}");
Console.WriteLine($"In Stock : {inStock}");
Console.WriteLine($"Audited : {lastAudit?.ToString("d") ?? "Never"}");
using IronXL;
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.GetWorkSheet("Products");
// Typed accessors handle conversion automatically
string productName = sheet["A2"].StringValue;
int quantity = sheet["B2"].IntValue;
decimal unitPrice = sheet["C2"].DecimalValue;
bool inStock = sheet["D2"].BoolValue;
DateTime? lastAudit = sheet["E2"].DateTimeValue;
Console.WriteLine($"Product : {productName}");
Console.WriteLine($"Qty : {quantity}");
Console.WriteLine($"Price : {unitPrice:C}");
Console.WriteLine($"In Stock : {inStock}");
Console.WriteLine($"Audited : {lastAudit?.ToString("d") ?? "Never"}");
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("inventory.xlsx")
Dim sheet As WorkSheet = workbook.GetWorkSheet("Products")
' Typed accessors handle conversion automatically
Dim productName As String = sheet("A2").StringValue
Dim quantity As Integer = sheet("B2").IntValue
Dim unitPrice As Decimal = sheet("C2").DecimalValue
Dim inStock As Boolean = sheet("D2").BoolValue
Dim lastAudit As DateTime? = sheet("E2").DateTimeValue
Console.WriteLine($"Product : {productName}")
Console.WriteLine($"Qty : {quantity}")
Console.WriteLine($"Price : {unitPrice:C}")
Console.WriteLine($"In Stock : {inStock}")
Console.WriteLine($"Audited : {If(lastAudit?.ToString("d"), "Never")}")
Lorsqu'une cellule contient une formule, IronXL l'évalue et renvoie le résultat calculé via les mêmes propriétés typées. Vous n'avez pas besoin d'appeler une méthode d'évaluation distincte. Pour les cellules susceptibles d'être vides ou de contenir un type incompatible, la bibliothèque renvoie la valeur par défaut de ce type plutôt que de lever une exception, ce qui simplifie la logique de validation des entrées.
| Propriété | Type .NET | Renvoie une valeur lorsqu'elle est vide. | Remarques |
|---|---|---|---|
StringValue |
chaîne |
Chaîne vide | Toujours sûr ; convertit n'importe quelle cellule en texte |
ValeurInt |
int |
0 |
Tronque les nombres décimaux |
Valeur décimale |
décimal |
0m |
Préserve la précision des données financières |
Valeur double |
double |
0.0 |
À utiliser pour des valeurs scientifiques ou statistiques |
BoolValue |
bool |
faux |
Lit les cellules VRAI/FAUX d'Excel |
DateTimeValue |
DateTime ? |
null |
Nullable -- à vérifier avant utilisation |
Comment travailler avec plusieurs feuilles de calcul nommées ?
Accès par nom, index ou itération
Les feuilles de calcul Enterprise contiennent souvent plusieurs feuilles nommées : une par mois, une par région ou une par gamme de produits. IronXL vous offre plusieurs façons d'y accéder :
using IronXL;
WorkBook workbook = WorkBook.Load("annual_sales.xlsx");
// Option 1: access by name (throws if the sheet does not exist)
WorkSheet januarySheet = workbook.GetWorkSheet("January");
// Option 2: iterate all sheets in the workbook
foreach (WorkSheet ws in workbook.WorkSheets)
{
Console.WriteLine($"Sheet: {ws.Name} | Rows: {ws.RowCount}");
// Read the header row from each sheet
string header = ws["A1"].StringValue;
Console.WriteLine($" Header: {header}");
}
// Option 3: access by zero-based index
WorkSheet lastSheet = workbook.WorkSheets[workbook.WorkSheets.Count - 1];
Console.WriteLine($"Last sheet: {lastSheet.Name}");
using IronXL;
WorkBook workbook = WorkBook.Load("annual_sales.xlsx");
// Option 1: access by name (throws if the sheet does not exist)
WorkSheet januarySheet = workbook.GetWorkSheet("January");
// Option 2: iterate all sheets in the workbook
foreach (WorkSheet ws in workbook.WorkSheets)
{
Console.WriteLine($"Sheet: {ws.Name} | Rows: {ws.RowCount}");
// Read the header row from each sheet
string header = ws["A1"].StringValue;
Console.WriteLine($" Header: {header}");
}
// Option 3: access by zero-based index
WorkSheet lastSheet = workbook.WorkSheets[workbook.WorkSheets.Count - 1];
Console.WriteLine($"Last sheet: {lastSheet.Name}");
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("annual_sales.xlsx")
' Option 1: access by name (throws if the sheet does not exist)
Dim januarySheet As WorkSheet = workbook.GetWorkSheet("January")
' Option 2: iterate all sheets in the workbook
For Each ws As WorkSheet In workbook.WorkSheets
Console.WriteLine($"Sheet: {ws.Name} | Rows: {ws.RowCount}")
' Read the header row from each sheet
Dim header As String = ws("A1").StringValue
Console.WriteLine($" Header: {header}")
Next
' Option 3: access by zero-based index
Dim lastSheet As WorkSheet = workbook.WorkSheets(workbook.WorkSheets.Count - 1)
Console.WriteLine($"Last sheet: {lastSheet.Name}")
Lorsque le nom de la feuille est connu au moment de la conception, GetWorkSheet est l'option la plus claire. Pour le traitement dynamique - où les noms de feuilles proviennent de l'entrée ou de la configuration de l'utilisateur - l'itération de la collection WorkSheets évite les hypothèses codées en dur et gère les classeurs avec des nombres variables de feuilles.
Comment gérez-vous les cellules fusionnées et les régions formatées ?
Les rapports et les tableaux de bord utilisent fréquemment des cellules fusionnées pour les en-têtes, les étiquettes groupées et les lignes de synthèse. IronXL lit la valeur de la cellule en haut à gauche d'une région fusionnée, exactement comme Excel l'affiche :
using IronXL;
WorkBook workbook = WorkBook.Load("report_with_merges.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// The merged region A1:D1 stores its value in cell A1
string reportTitle = sheet["A1"].StringValue;
Console.WriteLine($"Report title : {reportTitle}");
// Read cell formatting metadata
var titleCell = sheet["A1"];
Console.WriteLine($"Bold : {titleCell.Style.Font.Bold}");
Console.WriteLine($"Font size : {titleCell.Style.Font.Height}");
// Scan an entire column for non-empty section headers
foreach (var cell in sheet["A1:A100"])
{
if (!cell.IsEmpty && cell.Style.Font.Bold)
Console.WriteLine($"Section header at {cell.AddressString}: {cell.StringValue}");
}
using IronXL;
WorkBook workbook = WorkBook.Load("report_with_merges.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// The merged region A1:D1 stores its value in cell A1
string reportTitle = sheet["A1"].StringValue;
Console.WriteLine($"Report title : {reportTitle}");
// Read cell formatting metadata
var titleCell = sheet["A1"];
Console.WriteLine($"Bold : {titleCell.Style.Font.Bold}");
Console.WriteLine($"Font size : {titleCell.Style.Font.Height}");
// Scan an entire column for non-empty section headers
foreach (var cell in sheet["A1:A100"])
{
if (!cell.IsEmpty && cell.Style.Font.Bold)
Console.WriteLine($"Section header at {cell.AddressString}: {cell.StringValue}");
}
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("report_with_merges.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' The merged region A1:D1 stores its value in cell A1
Dim reportTitle As String = sheet("A1").StringValue
Console.WriteLine($"Report title : {reportTitle}")
' Read cell formatting metadata
Dim titleCell = sheet("A1")
Console.WriteLine($"Bold : {titleCell.Style.Font.Bold}")
Console.WriteLine($"Font size : {titleCell.Style.Font.Height}")
' Scan an entire column for non-empty section headers
For Each cell In sheet("A1:A100")
If Not cell.IsEmpty AndAlso cell.Style.Font.Bold Then
Console.WriteLine($"Section header at {cell.AddressString}: {cell.StringValue}")
End If
Next
L'arbre des propriétés Style reflète la structure de la spécification OOXML SpreadsheetML, de sorte que les noms des propriétés sont familiers si vous avez travaillé avec le SDK Open XML. Cependant, IronXL encapsule toute cette complexité dans une API claire qui ne nécessite aucune manipulation XML de votre part.
Comment importer des fichiers CSV avec la même API ?
Les fichiers CSV produits par les exportations de bases de données, les systèmes CRM et les applications existantes peuvent être lus par le même appel WorkBook.Load. IronXL déduit le délimiteur du contenu du fichier :
using IronXL;
// Load a comma-separated values file -- same method, same API
WorkBook csvWorkbook = WorkBook.Load("export.csv");
WorkSheet csvSheet = csvWorkbook.DefaultWorkSheet;
Console.WriteLine($"CSV rows loaded: {csvSheet.RowCount}");
// Process rows exactly like any other worksheet
foreach (var row in csvSheet.Rows)
{
string id = row[0].StringValue;
string name = row[1].StringValue;
Console.WriteLine($"{id,-10} {name}");
}
using IronXL;
// Load a comma-separated values file -- same method, same API
WorkBook csvWorkbook = WorkBook.Load("export.csv");
WorkSheet csvSheet = csvWorkbook.DefaultWorkSheet;
Console.WriteLine($"CSV rows loaded: {csvSheet.RowCount}");
// Process rows exactly like any other worksheet
foreach (var row in csvSheet.Rows)
{
string id = row[0].StringValue;
string name = row[1].StringValue;
Console.WriteLine($"{id,-10} {name}");
}
Imports IronXL
' Load a comma-separated values file -- same method, same API
Dim csvWorkbook As WorkBook = WorkBook.Load("export.csv")
Dim csvSheet As WorkSheet = csvWorkbook.DefaultWorkSheet
Console.WriteLine($"CSV rows loaded: {csvSheet.RowCount}")
' Process rows exactly like any other worksheet
For Each row In csvSheet.Rows
Dim id As String = row(0).StringValue
Dim name As String = row(1).StringValue
Console.WriteLine($"{id,-10} {name}")
Next
Après le chargement, vous pouvez enregistrer les données au format XLSX en utilisant csvWorkbook.SaveAs("output.xlsx"). Il s'agit d'un schéma courant pour les pipelines de conversion CSV vers Excel : recevoir un fichier CSV, l'enrichir avec des colonnes calculées ou une mise en forme, puis renvoyer un rapport XLSX formaté à l'utilisateur.
Pour les fichiers séparés par des tabulations ou des délimiteurs personnalisés, utilisez WorkBook.LoadCSV("file.tsv", fileFormat: ExcelFileFormat.TSV) pour spécifier explicitement le format.
| Format | Extension du champ d'application | Produit par | Remarques |
|---|---|---|---|
| XLSX | .xlsx |
Excel 2007+, LibreOffice | Format moderne par défaut ; basé sur XML |
| XLS | .xls |
Excel 97-2003 | Format binaire ; prise en charge complète en lecture/écriture |
| ODS | .ods |
LibreOffice, OpenOffice | Norme de feuille de calcul OpenDocument |
| CSV | .csv |
Toute application | Délimiteur détecté automatiquement ; aucune mise en forme |
| TSV | .tsv |
Exportations de bases de données | Délimité par des tabulations ; spécifiez explicitement le format. |
Comment IronXL se compare-t-il à Microsoft.Office.Interop.Excel ?
Interopérabilité, kit de développement logiciel Open XML et IronXL côte à côte
L'alternative la plus courante à IronXL pour l'automatisation Excel dans .NET est Microsoft.Office.Interop.Excel . Comprendre les compromis vous aide à choisir l'outil adapté à votre projet.
Microsoft Interop encapsule le modèle objet COM d'Excel. Cela signifie qu'Excel doit être installé sur chaque machine exécutant votre code, y compris les serveurs web, les agents de compilation et les machines virtuelles cloud. La gestion du cycle de vie des objets COM est manuelle : vous devez libérer chaque objet Range, Worksheet et Workbook explicitement, sinon les processus Excel s'accumulent en arrière-plan et consomment de la mémoire jusqu'à ce que le serveur redémarre. La question des licences est également préoccupante : le CLUF d'Office interdit l'automatisation côté serveur dans de nombreux cas de figure.
IronXL s'affranchit de toutes ces contraintes. Il s'agit d'une bibliothèque purement gérée, sans aucune dépendance à COM. L'objet WorkBook est une classe .NET standard ; Le ramasse-miettes se charge du nettoyage. Vous pouvez exécuter le même code sur un ordinateur portable de développeur, un service d'application Azure, un conteneur Docker ou un Raspberry Pi sous Linux.
Le kit de développement logiciel Open XML de Microsoft est une autre solution. Il permet d'accéder directement au format de fichier OOXML sans nécessiter Excel, mais il fonctionne à un niveau très bas : vous manipulez directement les éléments XML. La lecture de la valeur d'une seule cellule nécessite de parcourir des tables de chaînes partagées, des références de cellules et des index de style. IronXL enveloppe tout cela dans l'appel sheet["A1"].StringValue d'une seule ligne présenté tout au long de ce guide.
Comment déployer le traitement Excel sur Linux et Docker ?
C'est lors des déploiements sur serveur que l'indépendance d'IronXL vis-à-vis d'Excel prend toute sa valeur. Le même code que vous écrivez sous Windows s'exécute sans modification sous Ubuntu, Alpine Linux ou macOS. Pour les déploiements conteneurisés, votre Dockerfile ne nécessite aucune configuration particulière :
# Standard .NET runtime image -- no Office packages needed
FROM mcr.microsoft.com/dotnet/runtime:10.0
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "ExcelProcessor.dll"]
# Standard .NET runtime image -- no Office packages needed
FROM mcr.microsoft.com/dotnet/runtime:10.0
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "ExcelProcessor.dll"]
Pour Azure Functions et AWS Lambda, IronXL fonctionne dans l'environnement d'exécution géré sans aucune configuration supplémentaire. La surcharge liée au démarrage à froid est minimale car il n'y a pas d'étape d'initialisation COM.
La sécurité des threads est intégrée : plusieurs threads peuvent ouvrir différentes instances WorkBook simultanément sans coordination. Si vous devez traiter des milliers de fichiers en parallèle - par exemple, dans un travail d'arrière-plan qui ingère des feuilles de calcul téléchargées par l'utilisateur - vous pouvez utiliser Parallel.ForEach ou Task.WhenAll à travers un pool d'instances WorkBook sans risque de corruption.
L'utilisation de la mémoire reste prévisible car IronXL ne charge en mémoire que la feuille de calcul demandée, et non l'intégralité du classeur lors de l'initialisation. Pour les fichiers très volumineux, cette distinction est importante : un classeur contenant dix feuilles de 50 Mo ne nécessite pas 500 Mo de RAM pour lire une seule feuille. La documentation relative aux performances IronXL décrit des stratégies supplémentaires pour la gestion des scénarios de traitement de fichiers à volume élevé.
Quelles sont vos prochaines étapes ?
La méthode la plus rapide pour valider IronXL dans votre projet consiste à installer le package NuGet et à exécuter les exemples de ce guide sur un fichier réel de votre environnement. Une licence d'essai gratuite débloque toutes les fonctionnalités sans aucune modification de code requise lorsque vous êtes prêt pour la production.
Explorez les fonctionnalités connexes IronXL qui complètent la lecture de fichiers :
- Écrire et créer des fichiers Excel en C# -- générer des rapports et exporter des données par programmation
- Mettez en forme les cellules, les lignes et les colonnes : appliquez des couleurs, des polices et des bordures par programmation.
- Utilisation des formules Excel en C# : lecture et écriture des cellules contenant des formules Convertir un fichier Excel en PDF avec .NET : générer des rapports PDF à partir de données de feuille de calcul
- Documentation de l'API IronXL : référence complète pour toutes les classes et méthodes
- Licences et tarifs IronXL : options pour les développeurs individuels et les équipes Enterprise
- Page NuGet d'IronXL -- instructions d'installation pour tous les types de projets
- Tutoriels IronXL -- guides étape par étape pour les cas d'utilisation courants Comparaison des fonctionnalités et des licences IronXL et d'EPPlus
- Page d'accueil du produit IronXL : présentation des fonctionnalités et ressources pour bien démarrer
Pour toute question relative aux licences, à la compatibilité multiplateforme ou aux exigences spécifiques en matière de format de fichier, l' équipe d'assistance IronXL est disponible par chat en direct et par e-mail.
Questions Fréquemment Posées
Comment puis-je lire des fichiers Open Office Excel en C# sans avoir Excel installé ?
Vous pouvez utiliser la bibliothèque IronXL pour lire des fichiers OpenOffice Excel en C# sans avoir à installer Excel sur votre serveur. Elle vous permet de charger efficacement les fichiers XLS, XLSX, ODS et CSV en un seul appel à la méthode WorkBook.Load.
Quels types de fichiers Excel peuvent être traités avec IronXL?
IronXL prend en charge le traitement de divers formats de fichiers Excel, notamment les fichiers XLS, XLSX, ODS (OpenDocument Spreadsheet) et CSV, ce qui le rend polyvalent pour différentes applications de tableur, y compris LibreOffice et OpenOffice.
Pourquoi les développeurs devraient-ils utiliser IronXL plutôt que Microsoft Interop pour lire les fichiers Excel ?
IronXL offre une méthode plus simple et plus efficace pour gérer les fichiers Excel sans avoir besoin de Microsoft Excel ni d'interopérabilité COM, réduisant ainsi la complexité et la charge sur les serveurs de production et permettant les déploiements Linux et Docker.
IronXL peut-il gérer les fichiers créés dans des applications tableur autres que MS Excel ?
Oui, IronXL peut lire et traiter des fichiers provenant d'autres applications tableurs telles qu'OpenOffice Calc et LibreOffice Calc, ce qui en fait un outil flexible pour les développeurs travaillant avec des formats compatibles ODS et ODF.
Est-il nécessaire d'installer Excel sur les serveurs de production pour utiliser IronXL?
Non, avec IronXL, il n'est pas nécessaire d'installer Excel sur les serveurs de production, ce qui simplifie le déploiement et réduit les besoins de maintenance. IronXL fonctionne sous Windows, Linux, macOS et dans des conteneurs Docker.
IronXL prend-il en charge le traitement des fichiers CSV ?
Oui, IronXL prend entièrement en charge la lecture et le traitement des fichiers CSV ainsi que d'autres formats Excel tels que XLS, XLSX et ODS en utilisant la même API WorkBook.Load.
Quels sont les avantages d'utiliser IronXL pour les développeurs .NET ?
IronXL offre aux développeurs .NET une bibliothèque facile à utiliser pour lire, écrire et manipuler des fichiers Excel sans avoir besoin de Microsoft Excel, améliorant ainsi la productivité et réduisant le temps de développement grâce à une API claire et fortement typée.
Comment IronXL améliore-t-il l'efficacité du traitement des fichiers Excel ?
IronXL améliore l'efficacité en éliminant le besoin de logiciels Excel, en fournissant des accesseurs de valeurs de cellules typés, un traitement concurrent sécurisé pour les threads et une solution légère qui traite les fichiers Excel directement dans les applications .NET .


