Passer au contenu du pied de page
UTILISATION D'IRONXL

Untitled Blog Post

La création de rapports Excel en C# est une exigence fondamentale dans les applications commerciales modernes et les applications .NET. Que vous génériez des états financiers, des analyses de ventes ou des tableaux de bord d'inventaire, l'automatisation du processus de création de fichiers et de feuilles de calcul Excel permet de gagner des heures de travail manuel tout en réduisant les erreurs.

IronXL offre une solution puissante et intuitive permettant aux développeurs de créer un rapport Excel en C sans nécessiter Microsoft Office, MS Excel ou les dépendances d'interopérabilité traditionnelles. Contrairement à l'automatisation OLE ou aux approches qui reposent sur l'application Excel, IronXL permet de générer des classeurs Excel et des données Excel directement dans le code, en une seule ligne si nécessaire. Dans ce guide, nous vous apprendrons à créer des rapports Excel avec IronXL, avec des exemples de code faciles à suivre que vous pourrez facilement intégrer à vos propres projets !

Qu'est-ce qu'IronXL et pourquoi l'utiliser pour la génération de fichiers Excel ?

IronXL est une bibliothèque Excel .NET qui permet aux développeurs de créer, de lire et de manipuler des fichiers Excel directement à partir de code source C# ou Visual Basic. Contrairement aux approches d'interopérabilité de Microsoft Office qui reposent sur l'application Excel complète ou sur la rétro-ingénierie via le SDK Open XML, IronXL fonctionne sur les environnements Windows, Linux, macOS et cloud sans nécessiter l'installation d'Excel ni de dépendances tierces. Cela le rend idéal pour les rapports Excel côté serveur, les flux de travail automatisés et les applications Web construites sur .NET Core ou le framework .NET.

Pour les équipes qui passent de processus Excel manuels, d'anciennes bibliothèques ou de flux de travail d'outils de productivité Open XML nécessitant la navigation dans différents espaces de noms XML, IronXL fournit une API intuitive. Il prend en charge à la fois les fichiers XLS traditionnels et les fichiers XLSX modernes, qui sont essentiellement des fichiers ZIP contenant des fichiers XML et divers dossiers. Que vous souhaitiez générer un nouveau classeur Excel , manipuler plusieurs feuilles de calcul ou charger des données Excel à partir d'un code externe, IronXL simplifie considérablement le processus sans qu'il soit nécessaire de comprendre les formats sous-jacents.

Premiers pas avec IronXL pour créer un fichier Excel

Configurer IronXL pour créer des rapports Excel ne prend que quelques minutes. Installez la bibliothèque via le gestionnaire de packages NuGet dans Visual Studio :

Install-Package IronXL.Excel

Téléchargez IronXL dès aujourd'hui et commencez à automatiser la génération de vos rapports Excel.

Une fois installé, la création de votre premier rapport Excel ne nécessite que quelques lignes de code :

using IronXL;
// Create a new Excel workbook for reports
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
// Add a worksheet for the report
WorkSheet reportSheet = workBook.CreateWorkSheet("Monthly Report");
// Add a title
reportSheet["A1"].Value = "Sales Report - January 2024";
reportSheet["A1"].Style.Font.Bold = true;
// Save the Excel report
workBook.SaveAs("MonthlyReport.xlsx");
using IronXL;
// Create a new Excel workbook for reports
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
// Add a worksheet for the report
WorkSheet reportSheet = workBook.CreateWorkSheet("Monthly Report");
// Add a title
reportSheet["A1"].Value = "Sales Report - January 2024";
reportSheet["A1"].Style.Font.Bold = true;
// Save the Excel report
workBook.SaveAs("MonthlyReport.xlsx");
$vbLabelText   $csharpLabel

Ce code crée un nouveau fichier de rapport Excel avec un titre formaté. La syntaxe familière de référence de cellule (reportSheet["A1"]) permet aux développeurs de spécifier facilement l'emplacement exact où les données doivent apparaître, tout comme lorsqu'on travaille manuellement avec Excel.

Sortie

Comment créer des rapports Excel en C# avec IronXL: Figure 1 - Exemple de sortie Excel

Chargement de données à partir de sources multiples

Dans le monde réel, les rapports Excel utilisent rarement des données statiques. IronXL excelle dans l'intégration de données Excel provenant de divers formats, d'API, de nouvelles sources DataTable, ou même de plusieurs fichiers XML différents. Cela le rend idéal pour la génération dynamique de rapports Excel en C# dans des applications côté serveur ou Web.

Intégration de bases de données

Pour les rapports Excel basés sur une base de données, IronXL fonctionne parfaitement avec ADO.NET DataTables :

using System.Data;
using System.Data.SqlClient;
// Fetch data from database
string connectionString = "Server=localhost;Database=Sales;Integrated Security=true;";
DataTable salesData = new DataTable();
using (SqlConnection conn = new SqlConnection(connectionString))
{
    SqlDataAdapter adapter = new SqlDataAdapter(
        "SELECT ProductName, Quantity, Revenue FROM MonthlySales", conn);
    adapter.Fill(salesData);
}
// Create Excel report from DataTable
WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.CreateWorkSheet("Sales Data");
// Add headers
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Quantity";  
sheet["C1"].Value = "Revenue";
// Populate data
int row = 2;
foreach (DataRow dataRow in salesData.Rows)
{
    sheet[$"A{row}"].Value = dataRow["ProductName"];
    sheet[$"B{row}"].Value = dataRow["Quantity"];
    sheet[$"C{row}"].Value = dataRow["Revenue"];
    row++;
}
using System.Data;
using System.Data.SqlClient;
// Fetch data from database
string connectionString = "Server=localhost;Database=Sales;Integrated Security=true;";
DataTable salesData = new DataTable();
using (SqlConnection conn = new SqlConnection(connectionString))
{
    SqlDataAdapter adapter = new SqlDataAdapter(
        "SELECT ProductName, Quantity, Revenue FROM MonthlySales", conn);
    adapter.Fill(salesData);
}
// Create Excel report from DataTable
WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.CreateWorkSheet("Sales Data");
// Add headers
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Quantity";  
sheet["C1"].Value = "Revenue";
// Populate data
int row = 2;
foreach (DataRow dataRow in salesData.Rows)
{
    sheet[$"A{row}"].Value = dataRow["ProductName"];
    sheet[$"B{row}"].Value = dataRow["Quantity"];
    sheet[$"C{row}"].Value = dataRow["Revenue"];
    row++;
}
$vbLabelText   $csharpLabel

Cette méthode charge les données de vente directement depuis SQL Server dans votre rapport Excel. L'intégration de DataTable vous permet d'utiliser votre code d'accès aux données existant sans modification. Pour les scénarios plus complexes, consultez la procédure de chargement de fichiers Excel à partir de bases de données SQL .

Travailler avec les collections

Pour les données en mémoire, les données Excel provenant de réponses d'API ou une nouvelle DataTable, les collections peuvent facilement alimenter des feuilles de calcul Excel sans dépendance à Microsoft Excel ni à des logiciels tiers :

var salesRecords = new List<SalesRecord>
{
    new SalesRecord { Product = "Widget A", Units = 150, Price = 29.99m },
    new SalesRecord { Product = "Widget B", Units = 82, Price = 49.99m }
};
// Convert collection to Excel
for (int i = 0; i < salesRecords.Count; i++)
{
    sheet[$"A{i+2}"].Value = salesRecords[i].Product;
    sheet[$"B{i+2}"].Value = salesRecords[i].Units;
    sheet[$"C{i+2}"].Value = salesRecords[i].Price;
}
var salesRecords = new List<SalesRecord>
{
    new SalesRecord { Product = "Widget A", Units = 150, Price = 29.99m },
    new SalesRecord { Product = "Widget B", Units = 82, Price = 49.99m }
};
// Convert collection to Excel
for (int i = 0; i < salesRecords.Count; i++)
{
    sheet[$"A{i+2}"].Value = salesRecords[i].Product;
    sheet[$"B{i+2}"].Value = salesRecords[i].Units;
    sheet[$"C{i+2}"].Value = salesRecords[i].Price;
}
$vbLabelText   $csharpLabel

Cette méthode permet de créer un rapport Excel en C# directement dans une application .NET, ce qui simplifie considérablement le processus de génération de plusieurs feuilles de calcul ou fichiers XLSX par rapport à l'automatisation OLE manuelle ou à la rétro-ingénierie des fichiers XML.

Sortie

Comment créer des rapports Excel en C# avec IronXL: Figure 2 - Exemple de feuille de calcul à partir des données de sortie ?

Mise en forme de rapports Excel professionnels

Les données brutes seules ne permettent pas d'établir un rapport professionnel. IronXL offre des options complètes de mise en forme des cellules pour créer des fichiers Excel soignés et prêts à l'emploi en entreprise. Le code suivant montre à quel point c'est facile avec IronXL :

using IronXL;
using IronXl.Styles;
class Program
{
    static void Main(string[] args)
    {
        // Create a new workbook
        var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        // Add a new worksheet
        var sheet = workbook.CreateWorkSheet("MySheet");
        // Add header values
        sheet["A1"].Value = "Product";
        sheet["B1"].Value = "Quantity";
        sheet["C1"].Value = "Price";
        // Add sample data rows
        sheet["A2"].Value = "Laptop";
        sheet["B2"].Value = 5;
        sheet["C2"].Value = 1299.99;
        sheet["A3"].Value = "Headphones";
        sheet["B3"].Value = 15;
        sheet["C3"].Value = 199.50;
        sheet["A4"].Value = "Keyboard";
        sheet["B4"].Value = 10;
        sheet["C4"].Value = 89.99;
        sheet["A5"].Value = "Monitor";
        sheet["B5"].Value = 7;
        sheet["C5"].Value = 249.00;
        // Header formatting
        var headerRange = sheet["A1:C1"];
        headerRange.Style.Font.Bold = true;
        headerRange.Style.SetBackgroundColor("#4472C4");
        headerRange.Style.Font.Color = "#FFFFFF";
        headerRange.Style.BottomBorder.Type = BorderType.Thick;
        // Number formatting for currency  
        sheet["C:C"].FormatString = "$#,##0.00";
        // Alternating row colors for readability
        for (int row = 2; row <= 10; row++)
        {
            if (row % 2 == 0)
            {
                sheet[$"A{row}:C{row}"].Style.SetBackgroundColor("#F2F2F2");
            }
        }
        // Column width adjustment
        sheet.Columns[0].Width = 15 * 256; // Width in 1/256th of character width
        sheet.Columns[2].Width = 12 * 256;
        // Add borders around data
        var dataRange = sheet["A1:C10"];
        dataRange.Style.TopBorder.Type = BorderType.Thin;
        dataRange.Style.RightBorder.Type = BorderType.Thin;
        dataRange.Style.BottomBorder.Type = BorderType.Thin;
        dataRange.Style.LeftBorder.Type = BorderType.Thin;
        // Save the workbook to a file
        workbook.SaveAs("MyWorkbook.xlsx");
    }
}
using IronXL;
using IronXl.Styles;
class Program
{
    static void Main(string[] args)
    {
        // Create a new workbook
        var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        // Add a new worksheet
        var sheet = workbook.CreateWorkSheet("MySheet");
        // Add header values
        sheet["A1"].Value = "Product";
        sheet["B1"].Value = "Quantity";
        sheet["C1"].Value = "Price";
        // Add sample data rows
        sheet["A2"].Value = "Laptop";
        sheet["B2"].Value = 5;
        sheet["C2"].Value = 1299.99;
        sheet["A3"].Value = "Headphones";
        sheet["B3"].Value = 15;
        sheet["C3"].Value = 199.50;
        sheet["A4"].Value = "Keyboard";
        sheet["B4"].Value = 10;
        sheet["C4"].Value = 89.99;
        sheet["A5"].Value = "Monitor";
        sheet["B5"].Value = 7;
        sheet["C5"].Value = 249.00;
        // Header formatting
        var headerRange = sheet["A1:C1"];
        headerRange.Style.Font.Bold = true;
        headerRange.Style.SetBackgroundColor("#4472C4");
        headerRange.Style.Font.Color = "#FFFFFF";
        headerRange.Style.BottomBorder.Type = BorderType.Thick;
        // Number formatting for currency  
        sheet["C:C"].FormatString = "$#,##0.00";
        // Alternating row colors for readability
        for (int row = 2; row <= 10; row++)
        {
            if (row % 2 == 0)
            {
                sheet[$"A{row}:C{row}"].Style.SetBackgroundColor("#F2F2F2");
            }
        }
        // Column width adjustment
        sheet.Columns[0].Width = 15 * 256; // Width in 1/256th of character width
        sheet.Columns[2].Width = 12 * 256;
        // Add borders around data
        var dataRange = sheet["A1:C10"];
        dataRange.Style.TopBorder.Type = BorderType.Thin;
        dataRange.Style.RightBorder.Type = BorderType.Thin;
        dataRange.Style.BottomBorder.Type = BorderType.Thin;
        dataRange.Style.LeftBorder.Type = BorderType.Thin;
        // Save the workbook to a file
        workbook.SaveAs("MyWorkbook.xlsx");
    }
}
$vbLabelText   $csharpLabel

Ces options de mise en forme transforment des données de base en rapports professionnels. L'API de style couvre tout, des polices et des couleurs aux bordures et à l'alignement , offrant un contrôle total sur l'apparence du rapport Excel. Pour des besoins de mise en forme avancés, explorez la mise en forme conditionnelle pour mettre automatiquement en évidence les données importantes.

Comment créer des rapports Excel en C# avec IronXL: Figure 3 - Sortie Excel formatée

Utilisation de formules pour les calculs dynamiques des rapports Excel

La puissance d'Excel réside dans ses formules, et IronXL prend entièrement en charge la création de formules Excel :

// Add formula for row totals
sheet["D1"].Value = "Total";
sheet["D2"].Formula = "=B2*C2";
// Copy formula down the column
for (int row = 3; row <= 10; row++)
{
    sheet[$"D{row}"].Formula = $"=B{row}*C{row}";
}
// Add summary formulas
sheet["A12"].Value = "Summary";
sheet["B12"].Formula = "=SUM(B2:B10)";
sheet["C12"].Formula = "=AVERAGE(C2:C10)";
sheet["D12"].Formula = "=SUM(D2:D10)";
// Add formula for row totals
sheet["D1"].Value = "Total";
sheet["D2"].Formula = "=B2*C2";
// Copy formula down the column
for (int row = 3; row <= 10; row++)
{
    sheet[$"D{row}"].Formula = $"=B{row}*C{row}";
}
// Add summary formulas
sheet["A12"].Value = "Summary";
sheet["B12"].Formula = "=SUM(B2:B10)";
sheet["C12"].Formula = "=AVERAGE(C2:C10)";
sheet["D12"].Formula = "=SUM(D2:D10)";
$vbLabelText   $csharpLabel

La prise en charge des formules inclut toutes les fonctions Excel standard telles que SOMME, MOYENNE, SI, RECHERCHEV, et bien plus encore. IronXL gère automatiquement les dépendances des formules et l'ordre de calcul, ce qui simplifie la génération de rapports Excel avec des calculs complexes. Apprenez-en davantage sur les fonctions mathématiques dans IronXL .

Comment créer des rapports Excel en C# avec IronXL: Figure 4 - Exemple de résultat avec formules

Rapports basés sur des modèles

Pour les rapports Excel récurrents ou les classeurs standardisés, IronXL prend en charge la génération basée sur des modèles, permettant aux développeurs de créer un fichier Excel à partir d'un modèle sans avoir à gérer le SDK Open XML, les fichiers rels ou divers dossiers :

// Load existing template
WorkBook templateBook = WorkBook.Load("ReportTemplate.xlsx");
WorkSheet templateSheet = templateBook.DefaultWorkSheet;
// Find and replace template markers
foreach (var cell in templateSheet["A1:Z100"])
{
    if (cell.Text.Contains("{{CompanyName}}"))
        cell.Value = cell.Text.Replace("{{CompanyName}}", "Acme Corp");
    if (cell.Text.Contains("{{ReportDate}}"))
        cell.Value = cell.Text.Replace("{{ReportDate}}", DateTime.Now.ToString("MMMM yyyy"));
}
// Save as new report
templateBook.SaveAs($"Report_{DateTime.Now:yyyyMMdd}.xlsx");
// Load existing template
WorkBook templateBook = WorkBook.Load("ReportTemplate.xlsx");
WorkSheet templateSheet = templateBook.DefaultWorkSheet;
// Find and replace template markers
foreach (var cell in templateSheet["A1:Z100"])
{
    if (cell.Text.Contains("{{CompanyName}}"))
        cell.Value = cell.Text.Replace("{{CompanyName}}", "Acme Corp");
    if (cell.Text.Contains("{{ReportDate}}"))
        cell.Value = cell.Text.Replace("{{ReportDate}}", DateTime.Now.ToString("MMMM yyyy"));
}
// Save as new report
templateBook.SaveAs($"Report_{DateTime.Now:yyyyMMdd}.xlsx");
$vbLabelText   $csharpLabel

Cette approche permet de conserver une mise en forme cohérente tout en mettant à jour le contenu dynamique, ce qui est idéal pour les rapports mensuels ou les documents standardisés.

Comment créer des rapports Excel en C# avec IronXL: Figure 5 - Comparaison entre le modèle de rapport et notre fichier Excel créé à partir de ce modèle.

Meilleures pratiques et dépannage

Lors de la mise en œuvre de la génération de rapports Excel, gardez ces conseils à l'esprit :

  • Utilisation de la mémoire avec les fichiers volumineux : Traitez les données par blocs plutôt que de charger des ensembles de données entiers ( recommandations de Microsoft pour les fichiers Excel volumineux ).
  • Problèmes de formatage de date : utilisez DateTime.ToOADate() pour les dates compatibles avec Excel ( explication du système de dates d'Excel ).
  • Erreurs de verrouillage de fichier : libérez toujours correctement les objets Excel à l'aide d'instructions using ou des nouvelles approches MemoryStream. Styles manquants : certaines propriétés de style nécessitent de définir d'abord la couleur d'arrière-plan.

Conclusion

IronXL transforme la génération de rapports Excel, un processus manuel fastidieux, en un flux de travail automatisé et fiable. Grâce à son API intuitive, sa compatibilité multiplateforme et son ensemble complet de fonctionnalités, les développeurs peuvent créer des rapports Excel professionnels en quelques minutes plutôt qu'en quelques heures. La combinaison d'une intégration de données facile, d'options de mise en forme puissantes et d'une prise en charge des formules fait d'IronXL un outil essentiel pour tout développeur C# travaillant avec des rapports Excel. Pour les développeurs intéressés, IronXL propose un essai gratuit et d'autres options de licence pour les entreprises et les particuliers.

Commencez avec IronXL maintenant.
green arrow pointer

Questions Fréquemment Posées

Comment puis-je créer un rapport Excel en C# ?

Vous pouvez créer un rapport Excel en C# en utilisant la bibliothèque IronXL, qui simplifie le processus de génération de fichiers Excel avec des fonctionnalités telles que la mise en forme, les formules et l'intégration de base de données.

Quels sont les avantages d'utiliser IronXL pour générer des rapports Excel ?

IronXL offre un moyen efficace d'automatiser la génération de rapports Excel, réduisant l'effort manuel et minimisant les erreurs. Il prend en charge une variété de fonctionnalités telles que la mise en forme avancée, les calculs de formules et une intégration transparente avec les bases de données.

Est-il possible d'intégrer des bases de données lors de la création de rapports Excel avec IronXL ?

Oui, IronXL permet une intégration facile avec les bases de données, vous permettant de récupérer les données directement de votre base de données à vos rapports Excel.

Puis-je appliquer une mise en forme personnalisée aux rapports Excel en utilisant IronXL ?

Absolument, IronXL prend en charge la mise en forme personnalisée, vous permettant de styliser vos rapports Excel avec des polices, des couleurs et des styles de cellules spécifiques pour répondre aux normes professionnelles.

IronXL prend-il en charge les calculs de formules dans les rapports Excel ?

Oui, IronXL prend en charge l'utilisation de formules dans les rapports Excel, permettant des calculs et des analyses de données directement dans vos fichiers Excel générés.

Pourquoi devrais-je automatiser la génération de rapports Excel dans mon application .NET ?

L'automatisation de la génération de rapports Excel dans votre application .NET permet de gagner du temps, de réduire les erreurs humaines et d'augmenter la productivité en éliminant les tâches répétitives impliquées dans la création manuelle de rapports.

IronXL peut-il gérer de grands ensembles de données lors de la création de rapports Excel ?

IronXL est conçu pour gérer efficacement de grands ensembles de données, ce qui le rend idéal pour générer des rapports Excel nécessitant le traitement de quantités importantes de données.

Quels types de rapports Excel puis-je créer en utilisant IronXL ?

Avec IronXL, vous pouvez créer divers types de rapports Excel, tels que des états financiers, des analyses de ventes, des tableaux de bord d'inventaire, et plus encore, adaptés à vos besoins commerciaux spécifiques.

Comment IronXL aide-t-il à réduire l'effort manuel dans la création de rapports Excel ?

IronXL automatise le processus de création de rapports en générant des fichiers Excel de manière programmatique, ce qui réduit considérablement l'effort manuel impliqué dans la mise en forme, la saisie de données et les calculs.

IronXL est-il adapté pour créer des rapports Excel professionnels ?

Oui, IronXL convient à la création de rapports Excel professionnels, offrant une gamme de fonctionnalités qui garantissent que vos rapports soient bien mis en forme, précis et prêts pour une utilisation professionnelle.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi