C++從Excel匯入資料
阿新 • • 發佈:2019-02-14
前三步和”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("匯入成功!");