エクスポート時に C# を使用して Excel 列を 10 進数に書式設定する
C# を使用してデータベースから Excel にデータをエクスポートする場合、問題が発生する可能性があります数値列が正しくフォーマットされていません。特に、10 進数値は、小数点以下の桁数が表示されず、整数として表示されることがあります。
この問題を解決し、10 進数の列が正しくエクスポートされるようにするには、次の方法を使用して、小数点以下の桁を表示せずに整数として表示されます。 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(); } }
このメソッドは、DataTable とファイル名をパラメータとして受け取ります。 ExcelPackage オブジェクトを作成し、そこにデータを読み込みます。次に、コードは各列を反復処理して、数値データが含まれているかどうかを確認します。その場合、小数点以下 2 桁が表示されるように数値形式が「0.00」に設定されます。最後に、ExcelPackage はバイト配列に変換され、添付ファイルとしてブラウザーに送信されます。
以上がC# を使用してデータをエクスポートするときに Excel の 10 進数列を正しく書式設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。