ホームページ >バックエンド開発 >C++ >C# を使用してデータをエクスポートするときに Excel の 10 進数列を正しく書式設定する方法

C# を使用してデータをエクスポートするときに Excel の 10 進数列を正しく書式設定する方法

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-07 11:57:41755ブラウズ

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

エクスポート時に 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。