요구사항
| 1. COM Object 참조 추가
2. 네임스페이스 추가
using Excel = Microsoft.Office.Interop.Excel; |
기본 동작 순서 및 구조
1: Excel.Application xlApp = null;2: Excel.Workbook xlWorkBook = null;3: Excel.Worksheet xlWorkSheet = null;4: object misValue = System.Reflection.Missing.Value;5:6: xlApp = new Excel.ApplicationClass();7: {8: xlWorkBook = xlApp.Workbooks.Add(misValue);9: {10: xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.Add(misValue, misValue, misValue, misValue);11:12: releaseObject(xlWorkSheet);13: }14: xlWorkBook.Close(true, misValue, misValue);15: releaseObject(xlWorkBook);16: }17: xlApp.Quit();18: releaseObject(xlApp);
1. 항목별 초기화 (애플리케이션 – 워크북 – 워크시트)
1: Excel.Application xlApp = null;2: Excel.Workbook xlWorkBook = null;3: Excel.Worksheet xlWorkSheet = null;
2. Missing Value 정의
1: object misValue = System.Reflection.Missing.Value;
3. 애플리케이션 인스턴스 생성
1: xlApp = new Excel.ApplicationClass();
4. 애플리케이션 인스턴스 해제 (http://hldec.net/entry/COM-%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8-Release%ED%95%98%EA%B8%B0)
1: releaseObject(xlApp);
5. 애플리케이션 종료
1: xlApp.Quit();
6. 워크북 인스턴스 생성
1: xlWorkBook = xlApp.Workbooks.Add(misValue);
7. 워크북 인스턴스 해제 (http://hldec.net/entry/COM-%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8-Release%ED%95%98%EA%B8%B0)
1: releaseObject(xlWorkBook);
8. 파일 열기
1: xlWorkBook = xlApp.Workbooks.Open(/*파일 명*/, 0, /*읽기 전용 ex)true*/, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
9. 파일 저장하기
1: xlWorkBook.SaveAs(/*파일 명*/, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
10. 워크북 닫기
1: xlWorkBook.Close(/*저장 여부 ex)true*/, misValue, misValue);
11. 워크시트 생성
1: xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.Add(misValue, misValue, misValue, misValue);
12. 워크시트 인스턴스 해제 (http://hldec.net/entry/COM-%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8-Release%ED%95%98%EA%B8%B0)
1: releaseObject(xlWorkSheet);
13. 워크시트 가져오기
1: xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(/*워크시트 인덱스*/);
14. 워크시트 이름 변경
1: xlWorkSheet.Name = /*워크시트 이름*/;
15. 셀에 내용 설정
1: xlWorkSheet.Cells[y, x] = /*셀 내용*/;
16. 셀의 값 가져오기
1: string value = /*알맞는 캐스트로 변경*/(string)(range.Cells[/*Cell Y*/, /*Cell X*/] as Excel.Range).Value2
17. 셀 범위 설정 (1)
1: Excel.Range range = worksheet.get_Range(/*시작 위치 ex)"A1"*/, /*마지막 위치 ex)"E1"*/);
18. 셀 범위 설정 (2)
1: Excel.Range range = objSheet.get_Range(/*시작 위치 ex)"A1"*/, Missing.Value);2: range = range.get_Resize(/*Width 범위*/, /*Height 범위*/);
19. 선택된 셀의 행 전체 선택
1: Excel.Range range = ((Excel.Range)xlWorkSheet.Cells[/*Cell Y*/, /*Cell X*/]).EntireRow;
20. 선택된 셀의 열 전체 선택
1: Excel.Range range = ((Excel.Range)xlWorkSheet.Cells[/*Cell Y*/, /*Cell X*/]).EntireColumn;
21. 셀 배경 색 설정
1: System.Drawing.Color color = System.Drawing.ColorTranslator.FromHtml(/*색상 ex)#FFFFFF*/);2: ((Excel.Range)xlWorkSheet.Cells[/*Cell Y*/, /*Cell X*/]).Interior.Color = System.Drawing.ColorTranslator.ToOle(color);
22. 셀 내용 포맷 설정 (http://xlsgen.arstdesign.com/core/numberformat.html)
1: ((Excel.Range)xlWorkSheet.Cells[/*Cell Y*/, /*Cell X*/]).EntireColumn.NumberFormat = /*포맷 ex)"@"*/;
23. 셀 크기 자동 맞춤
1: ((Excel.Range)xlWorkSheet.Cells[/*Cell Y*/, /*Cell X*/]).EntireColumn.AutoFit();
'Development & Tips > C# / WPF Programming' 카테고리의 다른 글
| 엑셀 파일 읽고 저장하기 (0) | 2011/11/11 |
|---|---|
| 외부에서 Drag & Drop으로 파일 리스트 받기 (0) | 2011/11/10 |
| COM 오브젝트 Release하기 (0) | 2011/11/10 |
| 폴더 및 하위 파일 삭제 (0) | 2011/11/10 |
| XML 파일 처리 (0) | 2011/11/10 |