IT/C#

[C#] Excel NumberFormat 표시 형식 지정해서 저장하기

Ella.J 2024. 4. 8. 15:07
728x90
반응형

 

2024.03.14 - [IT/C#] - [C#] Excel 사용하기. Create Excel File + Update Excel File

 

[C#] Excel 사용하기. Create Excel File + Update Excel File

[ C# Excel 사용하기 ] 1. 참조 추가하기 * 해당 PC에 Excel이 설치되어 있어야 하며, 엑셀 버전에 따라 해당 숫자가 다를 수 있음. 2. Excel 사용하기 Excel.Application을 사용해야 하는데, 위와 같이 에러가

ella-devblog.tistory.com

(Excel 저장 방법은 위 포스팅을 참고해 주세요)

 

 

Excel 저장 시 NumberFormat  표시 형식을 지정해서 저장하는 방법입니다.

 

데이터 저장 및 NumberFormat 지정 소스코드
실행결과 엑셀 저장 파일

 

 

전체 소스 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
static Excel.Application excelApp = null;
static Excel.Workbook wb = null;
static Excel._Worksheet ws = null;
 
public static bool SaveExcelFile()
{
    try
    {
        string sFilePath = $@"D:\123456\ExcelSaveTest.xlsx";
 
        // 1. ExcelApp 연결
        excelApp = new Excel.Application();
        if (excelApp == null)
        {
            return false;
        }
 
        // 2. Workbook 생성
        wb = excelApp.Workbooks.Add();
 
        // 3. WorkSheet 생성
        ws = (Excel.Worksheet)wb.Sheets.Add();
        ws.Name = "Data";
 
        // 4. 데이터 넣기
 
        // 1) 일반
        ws.Cells[11= "Date";
        // 1행 NumberFormat 일반 형식으로 지정
        ws.Rows[1].NumberFormat = "General";
 
        // 2) 날짜
        ws.Cells[21= DateTime.Now.ToString("yy/MM/dd HH:mm:ss");
        // A2 NumberFormat 날짜 형식으로 지정
        ws.Range["A2"].NumberFormat = "yy/m/d hh:mm:ss";
 
        // 3) 숫자
        ws.Cells[12= "Data";
        ws.Cells[22= 0.0000000123;
        ws.Cells[32= 0.00000000234;
        ws.Cells[42= 0.000000000345;
        ws.Cells[52= 0.0000000000456;
        // B2 Cell부터 1행 4열 만큼 NumberFormat 지수 형식으로 지정
        ws.Range["B2"].Resize[14].NumberFormat = "0.00E+00";
 
        // 4) 회계
        ws.Cells[13= 97.80;
        ws.Cells[23= 4527.09;
        ws.Cells[33= 365087.97;
        // C열 NumberFormat 회계 형식으로 지정
        ws.Columns["C"].NumberFormat = "$#,###,##0.00";
 
        // 5. Workbook 저장하고 닫기
        // (참고) 덮어쓰기 경고 알람창 없애기
        excelApp.DisplayAlerts = false;
        wb.SaveAs(sFilePath, Excel.XlFileFormat.xlWorkbookDefault);
        wb.Close(Type.Missing, Type.Missing, Type.Missing);
 
        // 6. ExcelApp 종료
        excelApp.Quit();
    }
    catch (Exception ex)
    {
        MessageBox.Show($"엑셀파일 저장 에러.");
        return false;
    }
    finally
    {
        releaseObject(excelApp);
        releaseObject(ws);
        releaseObject(wb);
    }
 
    return true;
}
cs

 

 

(참고) Microsoft 공식 문서

 

https://learn.microsoft.com/ko-kr/dotnet/api/microsoft.office.tools.excel.namedrange.numberformat?view=vsto-2017

 

NamedRange.NumberFormat Property (Microsoft.Office.Tools.Excel)

Gets or sets the format code for the NamedRange control.

learn.microsoft.com

 

728x90
반응형