问 谁能给个把VC运行结果直接输出到excel中的程序吗?急求
发布网友
发布时间:2024-02-12 17:08
我来回答
共1个回答
热心网友
时间:2024-02-21 02:39
我给你个差不多的 你改一下
CDatabase database;
CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动
CString sExcelFile;
CString sSql;
CFileDialog fileDialog(FALSE,"XLS", "",
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"电子表格文件(*.XLS)|*.XLS|", NULL);
fileDialog.m_ofn.lpstrTitle="输入记录保存的Excel文件名";
if(fileDialog.DoModal() != IDOK)
return;
sExcelFile = fileDialog.GetPathName(); // 要建立的Excel文件
CFileStatus tFileStatus;
if(CFile::GetStatus(sExcelFile,tFileStatus)==TRUE)
{
TRY
{
CFile::Remove(sExcelFile);
}
CATCH_ALL(e)
{
ShowMessageBox("删除原有Excel文件失败!\n请选择新的Excel文件名",FALSE);
return ;
}
END_CATCH_ALL;
}
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 接收信息记录 (信息编号 TEXT,接收时间 TEXT,姓名 TEXT,手机号 TEXT,接收设备 TEXT,短信内容 TEXT,已阅读 TEXT,已回复 TEXT)";
database.ExecuteSQL(sSql);
// 插入数值
for(int i=0;i<m_ctrlRecvMsgLogListctrl.GetItemCount();i++)
{
CString strRecvTime=m_ctrlRecvMsgLogListctrl.GetItemText(i, 0 );
CString strLinkman=m_ctrlRecvMsgLogListctrl.GetItemText(i, 1 );
CString strPhoneNumber=m_ctrlRecvMsgLogListctrl.GetItemText(i, 2 );
CString strRecvModem=m_ctrlRecvMsgLogListctrl.GetItemText(i, 3 );
CString strMsgContent=m_ctrlRecvMsgLogListctrl.GetItemText(i, 4 );
CString strReadStatus=m_ctrlRecvMsgLogListctrl.GetItemText(i, 5 );
CString strReportStaus=m_ctrlRecvMsgLogListctrl.GetItemText(i, 6 );
CString strMsgIndex=m_ctrlRecvMsgLogListctrl.GetItemText(i, 7 );
strMsgContent=CheckSmsContent(strMsgContent);
sSql.Format("INSERT INTO 接收信息记录 (信息编号,接收时间,姓名,手机号,接收设备,短信内容,已阅读,已回复) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s')",
ConvertString(strMsgIndex),ConvertString(strRecvTime),
ConvertString(strLinkman),ConvertString(strPhoneNumber),
ConvertString(strRecvModem),ConvertString(strMsgContent),
ConvertString(strReadStatus),ConvertString(strReportStaus));
database.ExecuteSQL(sSql);
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
}
}
// 关闭数据库
database.Close();