'Excel'에 해당되는 글 2건

  1. 2009.05.27 Excel worksheet 사용 범위 얻기
  2. 2009.05.04 Header paragraph for importing Excel
거두절미하고..
해당 시트의 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);
Posted by 김모작자

댓글을 달아 주세요


헤더 파일에
 
#import "C:\Program Files\Common Files\Microsoft Shared\Office12\MSO.DLL"       rename("RGB","_RGB")
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
#import "C:\\Program Files\\Microsoft Office\\Office11\\EXCEL.EXE" \
      rename("RGB","_RGB") \
      rename("DialogBox","_DialogBox") \
      rename("CopyFile","_CopyFile") \
      rename("ReplaceText","_ReplaceText") \
      exclude("IFont","IPicture","_IMsoDispObj")

....

실제로 사용하는 코드 예시 :  

 Excel::_ApplicationPtr m_Excel;
 m_Excel.CreateInstance(L"Excel.Application");
 m_Excel->put_Visible(0, VARIANT_TRUE);

 Excel::WorkbooksPtr books = m_Excel->Workbooks;
 m_Workbook = books->Add();
 m_Worksheet = m_Workbook->Worksheets->Add(); 
Posted by 김모작자

댓글을 달아 주세요