{
// TODO: 在此添加命令处理程序代码
CDatabase database;
CString sDriver = _T("MICROSOFT EXCEL DRIVER (*.XLS)"); // Excel安装驱动
CString sExcelFile;
//CString sPath; 
CString sSql;
CString sFileName; ////获取主程序所在路径(.exe)所在的目录,存于sPath中
//GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
//sPath.ReleaseBuffer ();
//int nPos;
//nPos=sPath.ReverseFind ('\\');
//sPath=sPath.Left(nPos + 1);
CFileDialog fDlg(FALSE, _T("xls"), NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("xls File (*.xls)|*.xls|"));
if(fDlg.DoModal()==IDOK)
{
sFileName = fDlg.GetPathName();
}
else
{
return;
}
sExcelFile = sFileName;   // 要建立的Excel文件
try
{
// 创建进行存取的字符串
sSql.Format(_T("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 Report(序号 char(50),帧ID char(50),数据长度 char(10),数据 char(240))";
database.ExecuteSQL(sSql);
int nItem = 0;
CString sNum,sID,sDataLen,sData;
while (nItem < m_Info.m_listData.GetItemCount())
{
sNum = m_Info.m_listData.GetItemText(nItem, 0);
sID = m_Info.m_listData.GetItemText(nItem, 1);
sDataLen = m_Info.m_listData.GetItemText(nItem, 2);
sData = m_Info.m_listData.GetItemText(nItem, 3);
// 插入数值
sSql = "INSERT INTO Report(序号,帧ID,数据长度,数据)VALUES('"+ sNum + "','"+ sID +"','"+ sDataLen +"','"+ sData +"')";
database.ExecuteSQL(sSql);
++nItem;
}
}
// 关闭数据库
database.Close();
AfxMessageBox(_T("Excel文件保存成功!"));
}
catch( _com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
感觉已经超过我这种初学者的水准了,望论坛大神指点。