关于CWorkBooks的Open出错

taotaoeta 2010-01-18 03:23:01
[align=left]// open the specified workbook
TRY
{
// Get Workbooks collection.
LPDISPATCH lpDisp;
lpDisp = m_pData->m_App.get_Workbooks(); // Get an IDispatch pointer
ASSERT(lpDisp);
m_pData->m_WorkBooks.AttachDispatch( lpDisp ); // Attach the IDispatch pointer to the books object.

// open the document
lpDisp = m_pData->m_WorkBooks.Open(CString(m_pData->m_strExcelPath.c_str()),
m_pData->m_CovOptional, m_pData->m_CovOptional, m_pData->m_CovOptional, m_pData->m_CovOptional,
m_pData->m_CovOptional, m_pData->m_CovOptional, m_pData->m_CovOptional, m_pData->m_CovOptional,
m_pData->m_CovOptional, m_pData->m_CovOptional, m_pData->m_CovOptional, m_pData->m_CovOptional
);
ASSERT(lpDisp);

//Set CWorkbook to use lpDisp, the IDispatch* of the actual workbook.
m_pData->m_WorkBook.AttachDispatch(lpDisp);
}
//Clean up if something went wrong.
CATCH(CException, e)
{
MessageBox(0,TEXT("Could not open workbork."), TEXT("Error"), MB_OK | MB_ICONERROR);
return;
}

程序跑到Open的时候,出来后执行Assert就执行MessageBox(0,TEXT("Could not open workbork.")。请问,哪里错了??
程序还是照样能往下跑。Excel也是照样能打开。

但跑到// get the selected worksheet
sheets = m_pData->m_WorkBook.get_Worksheets();
程序就崩了。
...全文
314 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
WaistCoat11 2010-01-18
  • 打赏
  • 举报
回复
应该是Open时出错了,看下你出入的参数都对不。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧