2011-03-29 5 views
0

C++을 사용하여 Excel 파일을 읽는 프로그램을 작성 중입니다. 필자는 파일의 두 열을 필요로하고 Excel 파일에는 필드가 포함되어 있지 않으며 그래프도 포함되어 있습니다. 10 개의 열이 있고 두 개의 열은 첫 번째와 7 번째입니다. CSV로 변환하지 못했습니다. 어떤 제안 plz.C++ 읽기 데이터 및 그래프가 포함 된 Excel 파일

감사합니다.

+0

Windows 플랫폼에서 실행하고 있습니까? –

답변

0

파일을 CSV로 저장 한 다음 fopen을 사용하여 CSV 파일을 읽어야합니다. 또한 스스로 숙제를하고 인터넷상의 사람들에게 도움을 요청하지 않아야합니다.

+0

그가 CSV로/CSV로 변환하는 것으로 이미 저장을 시도한 것처럼 보입니다.하지만 작동하지 않는 이유는 밝히지 않았습니다. –

0

Excel은 COM 인터페이스를 통해 프로그래밍 방식으로 구동 할 수 있습니다. 다음은 일부 코드입니다.

#include <windows.h> 
#include <iostream> 

#import "C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLL" rename("RGB", "MSORGB"), rename("DocumentProperties", "MSODocProps") 
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" rename ("Application", "VBApplication") 

namespace Excel 
{ 
    using namespace Office; 
    using namespace VBIDE; 
} 

#import "C:\Program Files\Microsoft Office\OFFICE11\Excel.EXE" \ 
    rename("RGB", "RGB_"), \ 
    rename("CopyFile", "CopyFile_"), \ 
    rename("DialogBox", "DialogBox_"), \ 
    rename("ReplaceText", "ReplaceText_") 

int main(int argc, char* argv[]) 
{ 
    ::CoInitialize(NULL); 

    try 
    { 
     Excel::_ApplicationPtr excel("Excel.Application"); 
     Excel::WorkbooksPtr wbs = excel->Workbooks; 
     Excel::_WorkbookPtr wb = wbs->Open(_bstr_t("c:\\temp\\test.xls")); 
     Excel::_WorksheetPtr sheet = wb->Sheets->GetItem(1); // First sheet 
     Excel::RangePtr range = sheet->Cells->GetItem(1, 1); // Row, column 
     _variant_t value = range->Value; 
    } 
    catch(_com_error& e) 
    { 
     std::cerr << "0x" << std::hex << e.Error() << std::endl; 
    } 
    catch(...) 
    { 
     std::cerr << "Unexpected error" << std::endl; 
    } 

    ::CoUninitialize(); 
    return 0; 
} 

이 코드는 디스크에서로드 된 스프레드 시트의 A1 셀에있는 값을 가져옵니다. 여기서부터 두 개의 데이터 열을 읽을 수 있어야합니다.