方法1:使用mfc的cdatabase類直接執行sql命令的方式實現
在檔案中包含標頭檔案
#include
#include
#include
void exportlisttoexcel(clistctrl *plist,cstring ***celfile cstring ssheetname)
// 建立進行訪問的字串
ssql.format("driver=;dsn='';firstrowhasnames=1;readonly=false;create_db=\"%s\";dbq=%s",sdriver, ***celfile, ***celfile);
// 建立資料庫 (既excel**檔案)
if( database.openex(ssql,cdatabase::noodbcdialog) )
ssql = ssql + columndata.psztext +" text";
strh = strh + columndata.psztext +" ";
}columnname.releasebuffer ();
columnnum = i;
ssql = "create table " + ssheetname+ " (" + ssql + ")";
database.executesql(ssql);
// 插入資料項
int nitemindex;
for (nitemindex=0;nitemindexgetitemcount ();nitemindex++)
ssql = "insert into "+ ssheetname
+" ("+ strh + ")"
+" values("+ strv + ")";
database.executesql(ssql);
}}
// 關閉資料庫
database.close();
warningstr.format("匯出檔案儲存於%s!",***celfile);
messagebox(null,warningstr,"提示",mb_ok|mb_iconinformation|mb_topmost);
}else
}//獲取odbc中excel驅動函式
cstring getexceldriver()
pszbuf = strchr(pszbuf, '\0') + 1;
}while (pszbuf[1] != '\0');
return sdriver;
}方法2:使用excel型別庫介面的方式實現
首先包含標頭檔案和初始化com介面,具體方法見我的另一篇文章《自動控制excel 並獲知使用者已將其關閉》
m_wbexcelsingle.attachdispatch(m_wbexcels.add(covoptional));
//得到worksheets
m_w***cels.attachdispatch(m_wbexcelsingle.getworksheets(),true);
//刪除多餘的表
m_w***celsingle.attachdispatch(m_w***cels.getitem(colevariant((short)3)));
m_w***celsingle.delete();
m_w***celsingle.attachdispatch(m_w***cels.getitem(colevariant((short)2)));
m_w***celsingle.delete();
//表改名
m_w***celsingle.attachdispatch(m_w***cels.getitem(colevariant((short)1)));
m_w***celsingle.setname(ssheetname);
m_rangeexcel.attachdispatch(m_w***celsingle.getusedrange(), true);
if (plist->getitemcount ()>0)
VC匯出CListCtrl資料到Excel兩種方法
vc匯出clistctrl資料到excel兩種方法 方法1 使用mfc的cdatabase類直接執行sql命令的方式實現 在檔案中包含標頭檔案 include include include void exportlisttoexcel clistctrl plist,cstring celfile...
VC匯出資料到EXCEL
我們製作應用軟體的時候,經常要把結果以報表的形式輸出,當前使用較為廣泛的當然是excel 本文簡略介紹在vc 6.0中如何使用excel2003的庫函式並對其進行程式設計。先建立乙個對話方塊工程,命名為vcexcel。在對話方塊中新增乙個按鈕,控制項id為id runexcel,介面如下 是不是很搞...
VC匯出函式衝突
前提 1 本工程a 需要匯出介面create,但是這個介面,已經暴露出去了,不能修改這個介面名 也就是在a.def裡面存在 create 的匯出 介面定義為 extern bool create void p 2 本工程a需要 include b.h 檔案,而b.h 檔案裡面存在如下 class t...