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(); } }
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!