{
// 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());
}
}
感覺已經超過我這種初學者的水準了,望論壇大神指點。
uj5u.com熱心網友回復:
http://bbs.csdn.net/topics/392143402uj5u.com熱心網友回復:
https://docs.microsoft.com/en-us/sql/odbc/microsoft/sqldriverconnect-excel-driver轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/81911.html
標籤:基礎類
