clistctrl导出excel格式

void CList2Excel::ExportListToExcel(CListCtrl* pList, CString strTitle,CString strExcFile)
{
 CString warningStr;
 if (pList->GetItemCount ()>0)
 {   
  CDatabase database;
  CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动
  CString sExcelFile = strExcFile; // 要建立的Excel文件
  CString sSql;
  CString strField = "",strField2 = "";
  
  int m;
  int n = pList->GetItemCount();
  // 创建进行存取的字符串
  sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=/"%s/";DBQ=%s",sDriver, sExcelFile, sExcelFile);
  
  // 创建数据库 (既Excel表格文件)
  if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
  {
   // 创建表结构
   int i;
   LVCOLUMN columnData;
   CString columnName;
   int columnNum = 0;
   CString strH;
   CString strV;
   
   sSql = "";
   strH = "";
   columnData.mask = LVCF_TEXT;
   columnData.cchTextMax =256;
   columnData.pszText = columnName.GetBuffer (256);
   for(i=0;pList->GetColumn(i,&columnData);i++)
   {
    strField = strField + "[" + columnData.pszText +"]" + " char(255), ";
    strField2 = strField2 + "[" + columnData.pszText +"], ";
   }
   columnName.ReleaseBuffer ();
   m = i;
   // 创建表结构
   sSql.Format("CREATE TABLE [%s] (",strTitle);
   
   strField.Delete(strField.GetLength()-2, 2);
   
   strField += ")";
   sSql += strField;
   database.ExecuteSQL(sSql);
   
   
   strField2.Delete(strField2.GetLength()-2, 2);
   

   //Add By HuangXiao Ke;把导出时进度信息显示出来,耦合性太大,如果别的程序要用这个累,把这些无关代码去掉

   CD_Progress* pDlg = (CD_Progress*)g_dlgQueryManager.GetDialog(IDD_DIALOG_PROGRESS);
   pDlg->ShowWindow(SW_SHOW);
   pDlg->m_cProgress.SetRange(0,n);
   pDlg->m_cProgress.SetPos(0);


   CString str;
   // 插入数值
   for (i=0; i<n; i++)
   {

    pDlg->m_cProgress.SetPos(i);

    sSql="";
    sSql.Format("INSERT INTO [%s] (",strTitle);
    sSql += strField2;
    sSql += ") VALUES (";
    for (int j = 0; j <m ; j++)
    {
     str = "";
     str.Format("'%s', ", pList->GetItemText(i,j));
     sSql = sSql + str;
    }
    sSql.Delete(sSql.GetLength()-2, 2);
    sSql += ")";
    
    //OutputDebugString(sSql);
    
    database.ExecuteSQL(sSql);    
   }

   pDlg->ShowWindow(SW_HIDE);
  }

  // 关闭数据库
  database.Close();
  warningStr.Format("导出文件保存于%s.xls!",sExcelFile);
  AfxMessageBox(warningStr);
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值