我把你的程序改了一下,不同的地方你自己比较,这样可以读取正确的单元格的值: CFileDialog Exceldlg(TRUE,NULL,NULL,OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT,
"Excel(*.xls) |*.xls||",NULL);
if(IDOK==Exceldlg.DoModal())
{
m_strFilePath=Exceldlg.GetPathName();
// UpdateData(FALSE); COleVariant
covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); _Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
Range rgMyRge;
if (!ExcelApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!");
exit(1);
} wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(m_strFilePath))); wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet3")),true); rgMyRge.AttachDispatch(wsMysheet.GetCells(),true); int column = rgMyRge.GetColumn();
int row = rgMyRge.GetRow();
VARIANT tt;
///////////////
Range cell;//增加一个对象
cell.AttachDispatch(rgMyRge.GetItem(COleVariant((long)1),COleVariant((long)1)).pdispVal,true);
tt = cell.GetValue2();//取值
////////////
CString yy;
yy = tt.bstrVal;
AfxMessageBox(yy);//输出值cell.ReleaseDispatch();
rgMyRge.ReleaseDispatch();
wsMysheet.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
wbMyBook.ReleaseDispatch();
wbsMyBooks.ReleaseDispatch();
ExcelApp.ReleaseDispatch();
"Excel(*.xls) |*.xls||",NULL);
if(IDOK==Exceldlg.DoModal())
{
m_strFilePath=Exceldlg.GetPathName();
// UpdateData(FALSE); COleVariant
covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); _Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
Range rgMyRge;
if (!ExcelApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!");
exit(1);
} wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(m_strFilePath))); wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet3")),true); rgMyRge.AttachDispatch(wsMysheet.GetCells(),true); int column = rgMyRge.GetColumn();
int row = rgMyRge.GetRow();
VARIANT tt;
///////////////
Range cell;//增加一个对象
cell.AttachDispatch(rgMyRge.GetItem(COleVariant((long)1),COleVariant((long)1)).pdispVal,true);
tt = cell.GetValue2();//取值
////////////
CString yy;
yy = tt.bstrVal;
AfxMessageBox(yy);//输出值cell.ReleaseDispatch();
rgMyRge.ReleaseDispatch();
wsMysheet.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
wbMyBook.ReleaseDispatch();
wbsMyBooks.ReleaseDispatch();
ExcelApp.ReleaseDispatch();
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货