Excel File 생성하는 방법과 동일하게
Excel.Application을 이용해 엑셀 연결 후
Workbook 생성, WorkSheet 생성한 다음
저장할 때 XML 파일로 저장하는 방법이 있다.
Workbook.SaveAs 메서드를 이용하여
파일 포맷을 XML 형식으로 지정 후
나머지 옵션들을 설정하여 저장하면 된다.
Workbook.SaveAs 메서드 (Microsoft.Office.Tools.Excel)
통합 문서의 변경 내용을 다른 파일로 저장합니다.
learn.microsoft.com
[C#] Excel 사용하기. Create Excel File + Update Excel File
[ C# Excel 사용하기 ] 1. 참조 추가하기 * 해당 PC에 Excel이 설치되어 있어야 하며, 엑셀 버전에 따라 해당 숫자가 다를 수 있음. 2. Excel 사용하기 Excel.Application을 사용해야 하는데, 위와 같이 에러가
ella-devblog.tistory.com
[C#] Excel NumberFormat 표시 형식 지정해서 저장하기
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이 설치되어 있어야 하며, 엑
ella-devblog.tistory.com
[ 전체 소스코드 ]
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
|
public static bool SaveExcelXmlFile()
{
try
{
// 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[1, 1] = "Date";
// 1행 NumberFormat 일반 형식으로 지정
ws.Rows[1].NumberFormat = "General";
// 2) 날짜
ws.Cells[2, 1] = DateTime.Now.ToString("yy/MM/dd HH:mm:ss");
// A2 NumberFormat 날짜 형식으로 지정
ws.Range["A2"].NumberFormat = "yy/m/d hh:mm:ss";
// 3) 숫자
ws.Cells[1, 2] = "Data";
ws.Cells[2, 2] = 0.0000000123;
ws.Cells[3, 2] = 0.00000000234;
ws.Cells[4, 2] = 0.000000000345;
ws.Cells[5, 2] = 0.0000000000456;
// B2 Cell부터 1행 4열 만큼 NumberFormat 지수 형식으로 지정
ws.Range["B2"].Resize[1, 4].NumberFormat = "0.00E+00";
// 4) 회계
ws.Cells[1, 3] = 97.80;
ws.Cells[2, 3] = 4527.09;
ws.Cells[3, 3] = 365087.97;
// C열 NumberFormat 회계 형식으로 지정
ws.Columns["C"].NumberFormat = "$#,###,##0.00";
// 5. Workbook 저장하고 닫기
string sFilePath = $@"D:\123456\ExcelSaveTest.xml";
wb.SaveAs(sFilePath,
Microsoft.Office.Interop.Excel.XlFileFormat.xlXMLSpreadsheet,
null, null, false, false,
XlSaveAsAccessMode.xlNoChange,
Microsoft.Office.Interop.Excel.XlSaveConflictResolution.xlLocalSessionChanges,
false, null, null, true);
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 |
[저장된 XML 파일]
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>Ella</Author>
<LastAuthor>Ella</LastAuthor>
<Created>2024-12-05T06:24:35Z</Created>
<Version>12.00</Version>
</DocumentProperties>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>9240</WindowHeight>
<WindowWidth>12420</WindowWidth>
<WindowTopX>400</WindowTopX>
<WindowTopY>50</WindowTopY>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Center"/>
<Borders/>
<Font ss:FontName="맑은 고딕" x:CharSet="129" x:Family="Modern" ss:Size="11"
ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s62">
<NumberFormat/>
</Style>
<Style ss:ID="s63">
<NumberFormat ss:Format="yy/m/d\ hh:mm:ss"/>
</Style>
<Style ss:ID="s64">
<NumberFormat ss:Format="Scientific"/>
</Style>
<Style ss:ID="s65">
<NumberFormat ss:Format=""$"#,###,##0.00"/>
</Style>
</Styles>
<Worksheet ss:Name="Data">
<Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="5" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="52" ss:DefaultRowHeight="17">
<Column ss:Index="3" ss:StyleID="s65" ss:Width="66.5"/>
<Row ss:StyleID="s62">
<Cell><Data ss:Type="String">Date</Data></Cell>
<Cell><Data ss:Type="String">Data</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="Number">97.8</Data></Cell>
</Row>
<Row>
<Cell ss:StyleID="s63"><Data ss:Type="String">24/12/05 15:24:35</Data></Cell>
<Cell ss:StyleID="s64"><Data ss:Type="Number">1.2299999999999999E-8</Data></Cell>
<Cell><Data ss:Type="Number">4527.09</Data></Cell>
<Cell ss:StyleID="s64"/>
<Cell ss:StyleID="s64"/>
</Row>
<Row>
<Cell ss:Index="2"><Data ss:Type="Number">2.3400000000000002E-9</Data></Cell>
<Cell><Data ss:Type="Number">365087.97</Data></Cell>
</Row>
<Row>
<Cell ss:Index="2"><Data ss:Type="Number">3.45E-10</Data></Cell>
</Row>
<Row>
<Cell ss:Index="2"><Data ss:Type="Number">4.5600000000000003E-11</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Selected/>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Sheet1">
<Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="52" ss:DefaultRowHeight="17">
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Sheet2">
<Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="52" ss:DefaultRowHeight="17">
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Sheet3">
<Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="52" ss:DefaultRowHeight="17">
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>
|
cs |
'IT > C#' 카테고리의 다른 글
[C#] DataGridView 자동 줄바꿈 기능 & 행 높이 자동 변환 (WrapMode & AutoSizeRowsMode) (0) | 2024.12.04 |
---|---|
[C#] 실시간 시계 라벨 만들기. Timer 사용법. (2) | 2024.11.21 |
[C#] ComboBox 드롭다운 길이 변경 DropDownHeight (0) | 2024.11.14 |
[C#] ListBox SelectionMode 차이 (None, One, MultiSimple, MultiExtended) (2) | 2024.11.11 |
[C#] FlowLayoutPanel TopDown 방향인데 스크롤이 좌우로만 나타나는 현상 (5) | 2024.11.08 |