VC++ ODBC 读取数据库中的数据保存到EXCEL

void CDialogOpRetrieveDis::OnBnClickedButtonSaveOpResult()
{
	// TODO: 在此添加控件通知处理程序代码
	CDatabase   database; 
    CString   sDriver   =   "MICROSOFT EXCEL DRIVER (*.XLS)";   //   Excel安装驱动 
    CString   sExcelFile;                                 //   要建立的Excel文件 
    CString   sSql; 
	CString   strItemText[3];

	CFileDialog dlg(FALSE);
	if(dlg.DoModal()==IDOK)
	{
		sExcelFile=dlg.GetPathName();
	}
	else
	{
		return ;
	}

    try 
    { 
        //   创建进行存取的字符串 
		sSql.Format("DRIVER={%s};DSN="";FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",
			sDriver, sExcelFile, sExcelFile);		
		
        //   创建数据库   (既Excel表格文件) 
        if(database.OpenEx(sSql,CDatabase::noOdbcDialog)   ) 
        { 
            //   创建表结构
            sSql   = "CREATE TABLE MyData (操作时间 TEXT,用户名称 TEXT,操作事件记录 TEXT) ";//demo 
            database.ExecuteSQL(sSql); 
			
			int nRow =m_ListCtrlOpRecordDis.GetItemCount();
			int nCol = 3;
			for (int i = 0; i < nRow; i++)
			{
				for(int j = 0; j < nCol; j++)
				{
					strItemText[j] = m_ListCtrlOpRecordDis.GetItemText(i,j);
				}
			     
				//   插入数值 
				sSql.Format("INSERT INTO MyData(操作时间,用户名称,操作事件记录) VALUES('%s','%s','%s')",
					strItemText[0],strItemText[1],strItemText[2]); 
				database.ExecuteSQL(sSql); 
			}
        }             
		
        //   关闭数据库 
        database.Close(); 
    } 
    catch(CDBException *e) 
    { 
		AfxMessageBox(e->m_strError);
        TRACE1( "Excel驱动没有安装:   %s ",sDriver); 
    } 
}

你可能感兴趣的:(VC++ ODBC 读取数据库中的数据保存到EXCEL)