mfc操作Excel,以实现了导入导出,望大牛帮忙解决删除。解决办法

mfc操作Excel,以实现了导入导出,望大牛帮忙解决删除。
下面是我引用的,我想在这里面写一个Excel的删除,是指定行的删除,因为,我想打印在数据,然后在把已经读取过的数据删除,在导入,在打印数据,在删除。循环。






在VC中彻底玩转Excel  作者:龚敏 来源:子玉山庄  

  如今Excel是越来越重要了,在我们自己开发的程序中不免要和Excel打交道了。利用Automation技术,我们可以在不去了解 
数据库的情况下玩转Excel,而且你会发现一切竟如此轻松! 
  好了,咱们开始吧,我不喜欢用长篇累牍的代码来故弄玄虚,所以下面的代码都是切中要害的片段,总体上是个连贯的过程 

, 
包括启动Excel,读取数据,写入数据,以及最后的关闭Excel,其中还包括了很多人感兴趣的合并单元格的处理。 
  特别说明以下代码需要MFC的支持,而且工程中还要包含EXCEL2000的定义文件:EXCEL9.H,EXCEL9.CPP 

***************************************************************************************************************** 

  //***** 
  //变量定义 
  _Application app;  
  Workbooks books; 
  _Workbook book; 
  Worksheets sheets; 
  _Worksheet sheet; 
  Range range; 
  Range iCell; 
  LPDISPATCH lpDisp;  
  COleVariant vResult; 
  COleVariant 
  covTrue((short)TRUE), 
  covFalse((short)FALSE), 
  covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);  
  
  
  //***** 
  //初始化COM的动态连接库 
  if(!AfxOleInit())  
  { 
  AfxMessageBox( "无法初始化COM的动态连接库! "); 
  return ; 
  }  
  
  
  //***** 
  //创建Excel 2000服务器(启动Excel) 
  if(!app.CreateDispatch( "Excel.Application "))  
  { 
  AfxMessageBox( "无法启动Excel服务器! "); 
  return; 
  } 
  
  app.SetVisible(TRUE); //使Excel可见 
  app.SetUserControl(TRUE); //允许其它用户控制Excel 
  

  //*****  
  //打开c:\\1.xls 
  books.AttachDispatch(app.GetWorkbooks()); 
  lpDisp = books.Open( "C:\\\\1.xls ",  
  covOptional, covOptional, covOptional, covOptional, covOptional, 
  covOptional, covOptional, covOptional, covOptional, covOptional, 
  covOptional, covOptional );  
   
   
  //***** 
  //得到Workbook 
  book.AttachDispatch(lpDisp); 
  
  
  //***** 
  //得到Worksheets  
  sheets.AttachDispatch(book.GetWorksheets());  
  
  
  //***** 
  //得到当前活跃sheet 
  //如果有单元格正处于编辑状态中,此操作不能返回,会一直等待 
  lpDisp=book.GetActiveSheet(); 
  sheet.AttachDispatch(lpDisp);  
   

  //***** 
  //读取已经使用区域的信息,包括已经使用的行数、列数、起始行、起始列 
  Range usedRange; 
  usedRange.AttachDispatch(sheet.GetUsedRange()); 
  range.AttachDispatch(usedRange.GetRows()); 
  long iRowNum=range.GetCount(); //已经使用的行数 
  
  range.AttachDispatch(usedRange.GetColumns()); 
  long iColNum=range.GetCount(); //已经使用的列数 
   
  long iStartRow=usedRange.GetRow(); //已使用区域的起始行,从1开始 
  long iStartCol=usedRange.GetColumn(); //已使用区域的起始列,从1开始