获取非活动sheet的内容

avonation 2014-11-11 05:05:18
新建了一个excel表格,里面有sheet1,sheet2,sheet3,一般情况下,sheet1是活动的sheet,那问题出来了,如何获取sheet2的内容?
求实现的代码或函数,谢谢。


_Application m_oExcelApp; // Excel程序
_Worksheet m_oWorkSheet; // 工作表
_Workbook m_oWorkBook; // 工作簿
Workbooks m_oWorkBooks; // 工作簿集合
Worksheets m_oWorkSheets; // 工作表集合
Range m_oCurrRange; // 使用区域


//2. read execl file

LPDISPATCH lpDisp = NULL;
COleVariant covTrue((short)TRUE);
COleVariant covFalse((short)FALSE);
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
Range oCurCell;

// 打开文件
lpDisp = m_oWorkBooks.Open(strFilePath,
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing)
);

// 获得活动的WorkBook( 工作簿 )
m_oWorkBook.AttachDispatch( lpDisp, TRUE );

// 获得活动的WorkSheet( 工作表 )
m_oWorkSheet.AttachDispatch( m_oWorkBook.GetActiveSheet(), TRUE ); //如何获得其它sheet ?

// 获得使用的区域Range( 区域 )
m_oCurrRange.AttachDispatch( m_oWorkSheet.GetUsedRange(), TRUE );
...全文
97 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
avonation 2014-11-24
  • 打赏
  • 举报
回复
需要根据sheet名称来读取。 m_oWorkSheets.AttachDispatch(m_oWorkBook.GetWorksheets(), TRUE ); m_oWorkSheet.AttachDispatch(m_oWorkSheets.GetItem(_variant_t(strSheetName[iLoop]))); if (m_oWorkSheet.m_lpDispatch != NULL){ m_oWorkSheet.Activate(); } 读到正确的名称后,激活当前sheet后,即可对其cell进行操作。
ForestDB 2014-11-11
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/subscriptions/ee660084 LZ觉得这个函数怎么样?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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