Memformat Lajur Excel kepada Perpuluhan Menggunakan C# pada Eksport
Apabila mengeksport data daripada pangkalan data ke Excel menggunakan C#, adalah mungkin untuk menghadapi masalah dengan lajur berangka tidak diformat dengan betul. Khususnya, nilai perpuluhan mungkin muncul sebagai integer dan bukannya menunjukkan tempat perpuluhan.
Untuk menyelesaikan isu ini dan memastikan lajur perpuluhan dieksport dengan betul, anda boleh menggunakan kaedah berikut untuk menambah pemformatan perpuluhan pada lajur tertentu dalam Fail 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(); } }
Kaedah ini menerima Jadual Data dan nama fail sebagai parameter. Ia mencipta objek ExcelPackage dan memuatkan data ke dalamnya. Kod itu kemudiannya berulang melalui setiap lajur dan menyemak sama ada ia mengandungi data berangka. Jika ya, format nombor ditetapkan kepada "0.00" untuk memastikan dua tempat perpuluhan dipaparkan. Akhir sekali, ExcelPackage ditukar kepada tatasusunan bait dan dihantar ke penyemak imbas sebagai lampiran.
Atas ialah kandungan terperinci Bagaimana Memformat Lajur Perpuluhan Excel Dengan Betul Apabila Mengeksport Data Menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!