MFC 자동화할 Excel 2000과 Excel 2002 및 Excel 2000과 Excel 2002 범위에서 배열을 구하는 방법을

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

186122
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
요약
이 문서에서는 Microsoft Excel을 자동화하고 배열로 여러 셀 범위의 값을 반환하는 방법을 보여 줍니다.
추가 정보
-한 - 셀 쿼리하지 않고 여러 셀 범위의 값을 반환할 수 VARIANT 값을 반환하려면 Range 개체의 GetValue 멤버 함수를 사용해야 합니다. 다음 GetValue에서 반환된 VARIANT 기반으로 SAFEARRAY를 구성할 수 있습니다. SAFEARRAY 일단 GetElement 사용하여 요소를 액세스할 수 있습니다. 다음 단계는 이 프로세스를 설명하기 및 문자열 및 숫자 요소의 액세스하는 방법을 보여 줍니다.

Microsoft Excel 2000 및 2002 자동화 노트

이 문서의 예제 코드는 Excel 97 개체 라이브러리 (Excel 8.olb) 에서 생성된 클래스 래퍼를 사용합니다. 약간의 수정이 이 코드 (Excel9.olb) Excel 2000 또는 Excel 2002 (Excel.olb) 클래스 래퍼를 사용하는 자동화 클라이언트를 적용할 수 있습니다. Microsoft Excel 2000 또는 2002 형식 라이브러리를 사용하여 이 문서에서 설명하는 예제 코드를 사용하는 방법에 대한 자세한 내용은 아래 문서 번호를 눌러 Microsoft 기술 자료에 있는 문서를 클릭하십시오.
224925새 릴리스 정보: Office 형식 라이브러리 변경될 수 있다

프로젝트를 만드는 단계

  1. Microsoft Excel에서 새 통합 문서를 만듭니다. A1:C8 문자열 및 숫자 데이터가 혼합되어 있는 셀을 채웁니다. "c:\test.xls" 으로 통합 문서를 저장하고 Microsoft Excel을 종료하십시오.
  2. 1-12단계 사용하는 경우 IDispatch 인터페이스 및 멤버 함수를 Excel8.olb 형식 라이브러리에 정의된 예제 프로젝트를 만들려면 Microsoft 기술 자료의 다음 문서에서 다음과 같이 하십시오.
    178749MFC 및 형식 라이브러리를 사용하여 자동화 프로젝트를 만드는 방법
  3. AutoProjectDlg.cpp 파일 맨 위에 다음 줄을 추가합니다:
          #include "excel8.h"					
  4. CAutoProjectDlg::OnRun() AutoProjectDlg.cpp 파일에 다음 코드를 추가하십시오.

    예제 코드

          // OLE Variant for Optional.      COleVariant VOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);      _Application objApp;      _Workbook objBook;      Workbooks objBooks;      Worksheets objSheets;      _Worksheet objSheet;      Range objRange;      VARIANT ret;      // Instantiate Excel and open an existing workbook.      objApp.CreateDispatch("Excel.Application");      objBooks = objApp.GetWorkbooks();      objBook = objBooks.Open("C:\\Test.xls",                VOptional, VOptional, VOptional, VOptional,                VOptional, VOptional, VOptional, VOptional,                VOptional, VOptional, VOptional, VOptional);      objSheets = objBook.GetWorksheets();      objSheet = objSheets.GetItem(COleVariant((short)1));      //Get the range object for which you wish to retrieve the      //data and then retrieve the data (as a variant array, ret).      objRange = objSheet.GetRange(COleVariant("A1"), COleVariant("C8"));      ret = objRange.GetValue();      //Create the SAFEARRAY from the VARIANT ret.      COleSafeArray sa(ret);      //Determine the array's dimensions.      long lNumRows;      long lNumCols;      sa.GetUBound(1, &lNumRows);      sa.GetUBound(2, &lNumCols);      //Display the elements in the SAFEARRAY.      long index[2];      VARIANT val;      int r, c;      TRACE("Contents of SafeArray\n");      TRACE("=====================\n\t");      for(c=1;c<=lNumCols;c++)      {         TRACE("\t\tCol %d", c);      }      TRACE("\n");      for(r=1;r<=lNumRows;r++)      {         TRACE("Row %d", r);         for(c=1;c<=lNumCols;c++)         {            index[0]=r;            index[1]=c;            sa.GetElement(index, &val);            switch(val.vt)            {            case VT_R8:               {                  TRACE("\t\t%1.2f", val.dblVal);                  break;               }            case VT_BSTR:               {                  TRACE("\t\t%s",(CString)val.bstrVal);                  break;               }            case VT_EMPTY:               {                  TRACE("\t\t<empty>");                  break;               }            }         }         TRACE("\n");      }      //Close the workbook without saving changes      //and quit Microsoft Excel.      objBook.Close(COleVariant((short)FALSE), VOptional, VOptional);      objApp.Quit();					
  5. 프로젝트를 컴파일하고 이를 실행하십시오.
  6. 실행을 클릭하십시오. 셀 A1:C8 값은 출력 창에 표시됩니다.
참조
MFC를 사용하여 Microsoft Excel 자동화에 대한 자세한 내용은 Microsoft 기술 자료 문서를 보려면 문서 번호를 아래 누르십시오.
186120MFC 배열 범위 채우기 및 Excel을 자동화하는 방법
184663포함 및 MFC 사용하여 Microsoft Excel 워크시트 자동화하는 방법
179706MFC를 사용하여 새 통합 문서 만들기 서식 및 Excel을 자동화하는 방법
178781HOWTO: MFC 및 워크시트 함수를 사용하여 Excel을 자동화합니다
178783HOWTO: MFC를 사용하여 Microsoft Excel 차트 만들기
167668SafeArray는 문자열 있는 VARIANT 1 에서 전달 방법

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 186122 - 마지막 검토: 12/05/2015 08:42:07 - 수정: 5.1

Microsoft Excel 2000 Standard Edition, Microsoft Visual C++ 5.0 Enterprise Edition, Microsoft Visual C++ 6.0 Enterprise Edition, Microsoft Visual C++ 5.0 Professional Edition, Microsoft Visual C++ 6.0 Professional Edition, Microsoft Visual C++, 32-bit Learning Edition 6.0, Microsoft Excel 2002 Standard Edition, Microsoft Excel 97 Standard Edition

  • kbnosurvey kbarchive kbmt kbprogramming kbfunctions kbautomation kbhowto kbinterop KB186122 KbMtko
피드백