VC匯出CListCtrl資料到Excel兩種方法

2021-06-19 08:27:25 字數 2028 閱讀 9973

方法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...