VC 导出的格式 Excel

 CFuncListCtrl& theCtrl = funcList;
 CHeaderCtrl* hdCtrl=theCtrl.GetHeaderCtrl();
 char text[256];
 int hCount=hdCtrl->GetItemCount();
 HDITEM hCol;
 CString str[50];
 for(int i=2;i<hCount;i++)
 {
  memset(text,0,sizeof(text));
  hCol.pszText=text;
  hCol.cchTextMax=sizeof(text);
  hCol.mask=HDI_TEXT;
  hdCtrl->GetItem(i,&hCol);
  str[i-2].Format("%s",hCol.pszText);
 } 
 BOOL bFileExist = FALSE; 
 CString tmp;
 FILE *fp;
 fp = fopen(strFile, "r");
 if (fp != NULL)
 {
  fclose(fp);
  remove(strFile); 
 }
 
 CDatabase database;
 CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动
 CString sSql;
 CString sSql1;
 BOOL bResult;   
 int n;
 TRY
 {
  // 创建进行存取的字符串
  sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=/"%s/";DBQ=%s",sDriver, strFile, strFile);
  
  // 创建数据库 (既Excel表格文件)
  if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
  {
   // 创建表结构
   if (!bFileExist)
   {
    //sSql = "CREATE TABLE 操作日志(操作用户 TEXT, 操作时间 TEXT, 操作事件 TEXT, 操作结果 TEXT)";
    sSql1 = "INSERT INTO 日志报表 (";
    sSql = "CREATE TABLE 日志报表 (";
    for(i=0;i<hCount-2;i++)
    {     
     n=str[i].Find("(");
     if(n>=0)
      str[i]=str[i].Left(n);
     sSql+=str[i];
     sSql1+=str[i];
     if(i<hCount-3)
     {
      sSql+=" TEXT, ";
      sSql1+=", ";
     }
     else
     {
      sSql+=" TEXT";
     }
    }
    sSql+=")";
    sSql1+=")";    
    database.ExecuteSQL(sSql);
   }   
   for(i=0;i<theCtrl.GetItemCount();i++)
   { 
    //sSql = "INSERT INTO 操作日志 (操作用户,操作时间,操作事件,操作结果) ";
    sSql = sSql1 + " VALUES ('";
    for(int j=0;j<hCount-2;j++)
    {
     str[j]=theCtrl.GetItemText(i,j+2);     
     sSql+=str[j];
    
     if(j<hCount-3)
      sSql += "','";
    }
    sSql+= "')";    
    database.ExecuteSQL(sSql);    
   }
   
  }     
  
  // 关闭数据库
  database.Close();
  
  bResult = TRUE;
 }
 CATCH_ALL(e)
 {
//  TRACE1("Excel驱动没有安装: %s",sDriver);
  LPVOID lpMsgBuf;
  FormatMessage(
   FORMAT_MESSAGE_ALLOCATE_BUFFER |
   FORMAT_MESSAGE_FROM_SYSTEM |
   FORMAT_MESSAGE_IGNORE_INSERTS,
   NULL,
   GetLastError(),
   MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
   (LPTSTR) &lpMsgBuf,
   0,
   NULL
   );  
//  MessageBox( (LPCTSTR)lpMsgBuf);//whr050917 去掉错误调试信息
  // Free the buffer.
  LocalFree( lpMsgBuf );

  database.Close();
  bResult = FALSE;
 }
 END_CATCH_ALL;
 return ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值