2011-03-29 59 views
0

我正在編寫一個程序來讀取使用C++的excel文件。我只需要文件的兩列和Excel文件不包含字段...它也包含圖形。有10列,我需要的兩列是第一和第七。轉換成CSV沒有工作。任何建議plz。C++讀取包含數據和圖形的excel文件

謝謝。

+0

您是否在Windows平臺上運行? – 2011-03-29 05:53:15

回答

0

您需要將文件另存爲CSV,然後使用fopen讀取CSV文件。你還需要自己開始做作業,而不是要求互聯網上的人尋求幫助。

+0

看起來他已經嘗試將其保存爲/轉換爲CSV,儘管他沒有說明爲什麼這不起作用。 – 2011-03-29 06:30:32

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中的值。你應該能夠從這裏讀到你的兩列數據。