1. 程式人生 > >C++從Excel匯入資料

C++從Excel匯入資料

前三步和”C++將資料匯出到Excel “一樣。
第四步中程式碼不一樣,如下:

    int pathleng;
    char charpath[200];
    GetCurrentDirectory(512,(LPSTR)charpath);
    CString strPath;
    strPath.Format(_T("%s\\標準.xls"),charpath);
    _Application app;    
    Workbooks books;
    _Workbook book;
    Worksheets sheets;
    _Worksheet sheet;
Range range; //建立Excel 2000伺服器(啟動Excel) if (!app.CreateDispatch("Excel.Application",NULL)) { AfxMessageBox("建立Excel服務失敗!"); exit(1); } books.AttachDispatch(app.GetWorkbooks()); book.AttachDispatch(books.Add(_variant_t(strPath))); _variant_t var; CString strResult;
CString numstr; int num; //得到Worksheets sheets.AttachDispatch(book.GetWorksheets()); sheet.AttachDispatch(sheets.GetItem(_variant_t("Sheet1"))); range.AttachDispatch(sheet.GetCells()); float STD_SCI[2][5]; for(int y=2;y<2+2;y++)//WaveMaxNum { for(int x
=2;x<2+5;x++) { var=range.GetItem(COleVariant((long)x),COleVariant((long)y)); strResult.Format("%s",(char*)(_bstr_t)var); STD_SCI[y-2][x-2] = atof(strResult); } } app.SetVisible(FALSE); app.SetUserControl(true); //釋放物件 range.ReleaseDispatch(); sheet.ReleaseDispatch(); sheets.ReleaseDispatch(); book.ReleaseDispatch(); books.ReleaseDispatch(); books.Close(); //1.徹底關閉Excel程序 app.Quit(); app.ReleaseDispatch(); AfxMessageBox("匯入成功!");