.NET

Excel worksheet 사용 범위 얻기

김모작자 2009. 5. 27. 15:10
거두절미하고..
해당 시트의 UsedRange 를 쓰면 바로 해결된다.
UsedRange 의 Value 또는 Value2 를 사용해 내용물 가져오면 끝..
Value2 가 해당 데이터를 전부 읽어버리는 입장에서는 매우 유용하고 빠른 방법이다.

전에는 셀 단위로 읽어 가면서 마지막 행/열을 파악했는데, 간편한 방법이 있었다

데이터가 있는 마지막 행 찾기 :
                Worksheet ws = (Worksheet) wb.Worksheets[1];
                Range range = ws.get_Range("A1", Missing.Value);
                range = range.get_End(XlDirection.xlDown);

데이터가 있는 마지막 열 찾기 :
                Worksheet ws = (Worksheet) wb.Worksheets[1];
                Range range = ws.get_Range("A1", Missing.Value);
                range = range.get_End(XlDirection.xlRight);

해당 시트의 범위 :
                Range range = ws.get_Range("A1", Missing.Value);
                range = range.get_End(XlDirection.xlDown);
                range = range.get_End(XlDirection.xlRight);
                
                String RightDownAddress = range.get_Address(
                false, false, XlReferenceStyle.xlA1,
                Type.Missing, Type.Missing);

                // 현재 시트의 데이터 전체를 커버하도록 range
                range = sheet.get_Range("A1", downAddress);