正文

VC操作Excel 删除里面sheet的方法2008-03-30 23:14:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/bills/33687.html

分享到:

VC里可以用Excel提供的类型库来编程操作Excel表格,最近有人问及怎么删除一个sheet,

该提问者说他的代码只能删除一个空的sheet,非空的总是删不了,我以前也没操作过Excel 试了一下 ,发现是可以的,Excel提供的类型库还是瞒好用的,只要去挖掘.......

代码如下,我就不解析了,看看就懂

 

void COptExcelDlg::OnOK()
{
 
 _Application   app;
 if(!app.CreateDispatch(_T("Excel.Application"),NULL))
 {
  AfxMessageBox(_T( "fail2 "));
  return;
 }

 app.SetVisible(FALSE);
 app.SetUserControl(FALSE);
 app.SetDisplayAlerts(FALSE);

 Workbooks   books;
 books.AttachDispatch(app.GetWorkbooks());

 LPDISPATCH                  lpDisp;  
 COleVariant                 vResult;
 COleVariant                 covTrue((short)TRUE);
 COleVariant                 covFalse((short)FALSE);
 COleVariant                 covOptional((long)DISP_E_PARAMNOTFOUND,   VT_ERROR);        
 
 lpDisp   =   books.Open( _T( "C:\\xx.xls"),
  covOptional,   covOptional,   covOptional,   covOptional,   covOptional,  
  covOptional,   covOptional,   covOptional,   covOptional,   covOptional,  
  covOptional,   covOptional,   covOptional,   covOptional);
 
 _Workbook   book;
 book.AttachDispatch(lpDisp);
 
 Sheets   sheets;
 sheets.AttachDispatch(book.GetWorksheets());

 _Worksheet sheet;

 sheet.AttachDispatch(sheets.GetItem(COleVariant("Sheet1")));
 sheet.Delete();
 book.Save();

  //   delete   pSheets,   MUST   DO   THIS 
 book.Close(
  COleVariant((short)TRUE),  
  COleVariant(_T( "C:\\xx.xls ")),  
  COleVariant((short)FALSE));
 
 app.Quit(); 
  
}

阅读(6071) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册