> 백엔드 개발 > C++ > C#을 사용하여 데이터를 내보낼 때 Excel 소수 열의 형식을 올바르게 지정하는 방법은 무엇입니까?

C#을 사용하여 데이터를 내보낼 때 Excel 소수 열의 형식을 올바르게 지정하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-07 11:57:41
원래의
790명이 탐색했습니다.

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

내보내기 시 C#을 사용하여 Excel 열을 10진수로 서식 지정

C#을 사용하여 데이터베이스에서 Excel로 데이터를 내보낼 때 문제가 발생할 수 있습니다. 숫자 열의 형식이 올바르게 지정되지 않았습니다. 특히 소수 값은 소수 자릿수를 표시하는 대신 정수로 나타날 수 있습니다.

이 문제를 해결하고 소수 열을 올바르게 내보내려면 다음 방법을 사용하여 다음 방법을 사용하여 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 개체를 만들고 여기에 데이터를 로드합니다. 그런 다음 코드는 각 열을 반복하여 숫자 데이터가 포함되어 있는지 확인합니다. 그렇다면 소수점 이하 두 자리가 표시되도록 숫자 형식이 "0.00"으로 설정됩니다. 마지막으로 ExcelPackage는 바이트 배열로 변환되어 브라우저에 첨부 파일로 전송됩니다.

위 내용은 C#을 사용하여 데이터를 내보낼 때 Excel 소수 열의 형식을 올바르게 지정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿