| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 전기차
- XML
- silverlight
- hnd-7070
- Sliverlight
- 실버라이트2
- JavaScript
- ASP.NET
- Ajax
- 형태소분석기
- 구글
- 백신
- WEb 2.0 Expo
- 자바스크립트
- Web 2.0
- GTD
- 개발자
- COM+
- MS
- 게으름
- 실버라이트
- jQuery
- 성공
- 검색
- C#
- 해킹
- 리팩토링
- GDI+
- 암호화
- .net
- Today
- Total
꿈으로 가는 작은 계단
C# and Excel (reading) 본문
이전 포스트 였던 C#을 이용한 엑셀(쓰기) C# and Excel (writing) 에서 이 번 포스팅 에서는 엑셀(읽기)를 해보겠습니다.
이전 포스트와 같은 환경 Microsoft Visual Studio 2008 + Microsoft Office Excel 2007 이며 처음 참조추가 하는 부분은 같습니다. 혹시 이 글을 처음 보신다면 이전 글을 먼저 확인해 보세요^^.
역시 이번 포스팅도 상당히 간단하게 끝납니다. 역시 사용법을 몰랐을 뿐이죠…
01.string conStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\sample.xlsx;Extended Properties=\"Excel 12.0;HDR=YES;\"";02.OleDbConnection excelConnection = new OleDbConnection(conStr);03.excelConnection.Open();04. 05.string strSQL = "SELECT * FROM [Sheet1$]";06.OleDbCommand dbCommand = new OleDbCommand(strSQL, excelConnection);07.OleDbDataAdapter dataAdapter = new OleDbDataAdapter(dbCommand);08. 09.DataTable dTable = new DataTable();10.dataAdapter.Fill(dTable);11. 12.dataGridView_excel_data.DataSource = dTable;13. 14.// dispose used objects15.dTable.Dispose();16.dataAdapter.Dispose();17.dbCommand.Dispose();18. 19.excelConnection.Close();20.excelConnection.Dispose();1번째 줄에서는
Provider=Microsoft.ACE.OLEDB.12.0; 오피스 버전에
영향을 받습니다.
Data Source=c:\sample.xlsx; 파일경로 입니다.
Extended Properties="Excel 12.0;HDR=YES"; 엑셀을 가르키며, HDR 은 엑셀
데이터의 첫번째 row 를 columnname 으로 지정할지 하지 않을지 결정하게됩니다. YES
는 지정입니다.
2~11번째는 OleDb 커넥,명령 등입니다.
12번째 줄은 폼에서 생성한 DataGridView에 DataSource로 dTable 을 지정하는 부분입니다. 이부분을 지나게 되면 폼에서 DataGridView에 내용이 채워지게 됩니다.
14~20번째 는 OleDb 커넥 종료와 Objects 들을 Dispose 하게 됩니다.
1번째 줄의 HDR=YES or NO 를 통해 어떻게 바뀌는지 확인해 보겠습니다.
우선 Excel File 윈 원본 데이터를 먼저 보겠습니다.

HDR=YES 로 설정한 경우는 아래와 같이 DataGridView 에 컬럼 제목으로 들어가게 됩니다.

반면 HDR=NO 로 설정하게 되면 컬럼명은 기본 셋팅값으로 바뀌고 원하던 바로 되지 않고 제목까지 데이터 쪽으로 내려가 버립니다.

이제부터는 원하는 부분을 읽어보도록 하겠습니다. (DataGridView 내용에서)
1.//DataGridView 에서 Rows 를 얻어옵니다.2.DataGridViewRowCollection rowCollection = dataGridView_excel_data.Rows;3.string getStr = rowCollection[1].Cells[3].Value.ToString();
row는 열을 가리키며 가로줄 입니다. 1줄에서 데이터그리드로 부터 Rows 를 얻어와 컬렉션에 집어 넣습니다. 이렇게 되면 rowCollection 을 통해 내용을 얻어 올 수 있습니다. 그리하여 다음줄에 인덱스연산을 통해 원하는 부분의 Value 를 얻어 올 수 있습니다.
어때요 참 쉽죠?ㅋ
또 한번의 간단한 포스팅이 끝났네요^^ㅎ 다음 포스팅에서는 인쇄 작업을 해보겠습니다.
출처 : http://dklee.net/46
'소프트웨어 > C# & ASP.NET' 카테고리의 다른 글
| XML 파일 읽기를 테스트해 보았다... (Count) (0) | 2009.09.29 |
|---|---|
| Visual Studio 2010 CTP 버전 다운로드 주소 (0) | 2009.08.27 |
| Visual Studio 2005 Tip (0) | 2009.08.18 |
| 한글,영어 문자열 길이 알아보기 (0) | 2009.08.18 |
| String Formatting (0) | 2009.08.13 |