从CAD里导出数据到excel档的问题.
<p>各位我现在把CAD数据导入到excel档案后为了方便,程式没有自动关掉excel,如果采用手动关掉excel,电脑进程里面的excel.exe无法关掉,如果执行几次就会产生几个excel.exe进程,请高手指教一下.假如要在程式里面关掉excel请问用什么函数.</p> <p>可否回复一下呀</p> 你把excel当作一个数据库来做就可以了 <p>给你一段函数看看,该函数是将CListCtrl控件的数据保存到excel中</p><p><br/>//使用ODBC将数据输出到excel数据区 <br/>void CGlobalFuns::ExportAsExcel(CListCtrl &listCtrl)<br/>{<br/> CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动<br/> CString sExcelFile;<br/> //弹出对话框选择路径<br/> CFileDialog fileDlg(FALSE,NULL,"BaseErr.xls",OFN_FILEMUSTEXIST| OFN_HIDEREADONLY,"(*.xls)|*.xls|");<br/> if( fileDlg.DoModal() == IDOK)<br/> {<br/> sExcelFile = fileDlg.GetPathName(); // 要建立的Excel文件<br/> CFileFind finder;<br/> BOOL bWorking = finder.FindFile(sExcelFile);//寻找文件<br/> if (bWorking)//如果已经存在文件,则删除<br/> {<br/> CFile::Remove((LPCTSTR)sExcelFile);<br/> }</p><p> }<br/> else return;</p><p> TRY<br/> {<br/> _ConnectionPtr pConnection; <br/> CString sql;<br/> // 创建进行存取的字符串<br/> sql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, sExcelFile, sExcelFile);</p><p> if(!CDBOperation::OpenExcelDB(pConnection,sql))<br/> {<br/> AfxMessageBox("保存失败!");<br/> return;<br/> }</p><p> CHeaderCtrl* pHeader = listCtrl.GetHeaderCtrl();<br/> //获得行,列的个数<br/> int nColCount = pHeader->GetItemCount();<br/> int nLineCount = listCtrl.GetItemCount();<br/> int ColOrderArray;<br/> CString ca;<br/> listCtrl.GetColumnOrderArray(ColOrderArray, nColCount);<br/> //检索各列的信息,确定列标题的内容<br/> for(int i =0 ; i< nColCount; i++)<br/> {<br/> LVCOLUMN lvc;<br/> char text;<br/> lvc.mask = LVCF_TEXT|LVCF_SUBITEM;<br/> lvc.pszText = text;<br/> lvc.cchTextMax = 100;<br/> listCtrl.GetColumn(ColOrderArray, &lvc);<br/> ca = lvc.pszText; <br/> }</p><p> // 创建表结构<br/> CString tempsql="(";<br/> for(i = 0 ; i < nColCount-1; i++)<br/> {<br/> tempsql += "[";<br/> tempsql += ca;<br/> tempsql += "]";<br/> tempsql += " TEXT,";</p><p> }<br/> tempsql += "[";<br/> tempsql += ca;<br/> tempsql += "]";<br/> tempsql += " TEXT)";<br/> sql = "CREATE TABLE Sheet1 ";<br/> sql += tempsql;<br/> if(!CDBOperation::ExecuteSql(pConnection,sql))<br/> {<br/> AfxMessageBox("创建表结构失败!");<br/> return;<br/> }</p><p> //插入数据<br/> int item_count=listCtrl.GetItemCount();<br/> tempsql="(";<br/> for(i =0 ; i< nColCount-1; i++)<br/> {<br/> tempsql += "[";<br/> tempsql+=ca;<br/> tempsql += "]";<br/> tempsql+=" ,";</p><p> }<br/> tempsql += "[";<br/> tempsql+=ca;<br/> tempsql += "]";<br/> tempsql+=")";<br/> for(int itemnum = 0;itemnum < item_count;itemnum++)<br/> { <br/> sql = "INSERT INTO Sheet1 ";<br/> sql += tempsql;<br/> sql += "VALUES ('";<br/> for(i =0 ; i< nColCount-1; i++)<br/> {<br/> sql += listCtrl.GetItemText(itemnum, i);<br/> sql += "','";</p><p> }<br/> sql += listCtrl.GetItemText(itemnum, nColCount-1);<br/> sql += "')";<br/> if(!CDBOperation::ExecuteSql(pConnection,sql))<br/> {<br/> AfxMessageBox("保存数据失败!");<br/> return;<br/> }<br/> } </p><p> // 关闭数据库<br/> pConnection->Close();</p><p> AfxMessageBox("Excel文件写入成功!");<br/> }<br/> CATCH_ALL(e)<br/> {<br/> TRACE1("Excel驱动没有安装: %s",sDriver);<br/> }<br/> END_CATCH_ALL; <br/>} <br/></p>
页:
[1]