64,637
社区成员
发帖
与我相关
我的任务
分享
CApplication app; //Excel程序
CWorkbooks books; //工作簿集合
CWorkbook book; //工作表
CWorksheets sheets; //工作簿集合
CWorksheet sheet; //工作表集合
CRange range; //使用区域
LPDISPATCH lpDisp;
CString sheetname;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if(!app.CreateDispatch(_T("Excel.Application"))) //创建IDispatch接口对象
{
MessageBox(_T("Error!"));
return;
}
books.AttachDispatch(app.get_Workbooks());
lpDisp = books.Open(strFilePath,covOptional, covOptional, covOptional, covOptional, covOptional,covOptional, covOptional, covOptional, covOptional, covOptional,covOptional, covOptional, covOptional,covOptional);
book.AttachDispatch(lpDisp);
sheets.AttachDispatch(book.get_Worksheets());
sheet.AttachDispatch(lpDisp);
long sheetsum = sheets.get_Count();
for(int i=1;i<=sheetsum;i++)
{
sheet.AttachDispatch(sheets.get_Item(COleVariant((long)i)));
sheetname = sheet.get_Name();
……
}
long sheetsum = sheets.get_Count();
for(int i=1;i<=sheetsum;i++)
{
sheet.AttachDispatch(sheets.get_Item(COleVariant((long)i)));
sheetname = sheet.get_Name();
……
}
就这段看起来是没有问题的。
sheets.AttachDispatch(book.get_Worksheets());
改为
sheets = book.get_Worksheets(); 试试