Maison > développement back-end > C++ > Comment formater correctement les colonnes décimales Excel lors de l'exportation de données à l'aide de C# ?

Comment formater correctement les colonnes décimales Excel lors de l'exportation de données à l'aide de C# ?

Patricia Arquette
Libérer: 2025-01-07 11:57:41
original
759 Les gens l'ont consulté

How to Format Excel Decimal Columns Correctly When Exporting Data Using C#?

Formatage d'une colonne Excel en décimal à l'aide de C# lors de l'exportation

Lors de l'exportation de données d'une base de données vers Excel à l'aide de C#, il est possible de rencontrer des problèmes les colonnes numériques ne sont pas formatées correctement. En particulier, les valeurs décimales peuvent apparaître sous forme de nombres entiers au lieu d'afficher les décimales.

Pour résoudre ce problème et garantir que les colonnes décimales sont exportées correctement, vous pouvez utiliser la méthode suivante pour ajouter une mise en forme décimale à des colonnes spécifiques dans le Fichier Excel :

private static void ExportToExcel(DataTable dt, string FileName)
{
    // Create an ExcelPackage object.
    using (ExcelPackage excelPackage = new ExcelPackage())
    {
        // Add a new worksheet to the package.
        ExcelWorksheet ws = excelPackage.Workbook.Worksheets.Add(FileName);

        // Load the data from the DataTable into the worksheet.
        ws.Cells["A1"].LoadFromDataTable(dt, true);

        // Autofit the columns to accommodate the data.
        ws.Cells[ws.Dimension.Address].AutoFitColumns();

        // Iterate through the columns and apply decimal formatting to the desired ones.
        for (int col = 1; col <= ws.Dimension.End.Column; col++)
        {
            // Get the cell in the first row (header row) of the column.
            var cell = ws.Cells[1, col];

            // If the column contains numeric data, apply decimal formatting to it.
            var columnType = dt.Columns[col - 1].DataType;
            if (columnType == typeof(decimal) || columnType == typeof(double))
            {
                // Set the number format to two decimal places.
                cell.Style.Numberformat.Format = "0.00";
            }
        }

        // Convert the ExcelPackage object to a byte array.
        byte[] bin = excelPackage.GetAsByteArray();

        // Send the byte array to the browser for download.
        Response.ClearHeaders();
        Response.Clear();
        Response.Buffer = true;
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-length", bin.Length.ToString());
        Response.AddHeader("content-disposition", "attachment; filename=\"" + FileName + ".xlsx\"");
        Response.OutputStream.Write(bin, 0, bin.Length);
        Response.Flush();

        // Complete the request and clean up.
        HttpContext.Current.ApplicationInstance.CompleteRequest();
    }
}
Copier après la connexion

Cette méthode accepte un DataTable et un nom de fichier comme paramètres. Il crée un objet ExcelPackage et y charge les données. Le code parcourt ensuite chaque colonne et vérifie si elle contient des données numériques. Si c'est le cas, le format numérique est défini sur "0,00" pour garantir que deux décimales soient affichées. Enfin, l'ExcelPackage est converti en tableau d'octets et envoyé au navigateur en pièce jointe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal