这里说明与WorkSheet名称相关的两个操作:
1.获得一个Excel文件中所有WorkSheet的名称。
2.根据指定的WorkSheet名称,获得该WorkSheet的接口。
第一个操作:
int
CIOExcel::getWorksheetsNameList(CStringstrFilePath,CStringArray&arraySheet)
{
LPDISPATCHlpDisp=NULL;
//
打开文件
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);
//
获得工作表集
m_oWorkSheets.AttachDispatch(m_oWorkBook.GetSheets(),TRUE);
//
包含的WorkSheet的个数
longlgSheetNum=m_oWorkSheets.GetCount();
//
获得名称列表
CStringArrayarraySheetName;
CStringstrName;
for(inti= 1;i<=lgSheetNum;i++ )
{
m_oWorkSheet.AttachDispatch(m_oWorkSheets.GetItem(COleVariant(long(i) ) ),TRUE);
strName=m_oWorkSheet.GetName();
arraySheetName.Add(strName);
}
arraySheet.Copy(arraySheetName);
return0;
}
第二个操作:
LPDISPATCHlpDisp=NULL;
//
打开文件
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);
//
获得工作表集
m_oWorkSheets.AttachDispatch(m_oWorkBook.GetSheets(),TRUE);
//
获得指定的工作表
m_oWorkSheet.AttachDispatch(m_oWorkSheets.GetItem(COleVariant(strSheetName) ),TRUE);
还有一定不要忘记初始化COM库和创建Excel程序。
if(!m_oExcelApp.CreateDispatch(_T("Excel.Application"),NULL) )
{
AfxMessageBox(_T("
创建Excel服务失败!"
) );
return-1;
}
//
设置为显示
m_oExcelApp.SetVisible(FALSE);
m_oWorkBooks.AttachDispatch(m_oExcelApp.GetWorkbooks(),TRUE);