利用ODBC把資料庫資料匯出為Excel檔案

2021-04-07 02:07:07 字數 2005 閱讀 1662

step1:

取得excel驅動程式,驗證電腦是否安裝了excel驅動程式。

**如下:

cstring creportcharge::getexceldriver()

pszbuf = strchr(pszbuf, '/0') + 1;

}while (pszbuf[1] != '/0');

return sdriver;

}step2:取得匯出檔案的存放路徑和名稱

cfiledialog dlgfileopen(false,null,null,ofn_overwriteprompt | ofn_nochangedir | ofn_explorer,"excel **檔案(*.xls)|*.xls|");

dlgfileopen.m_ofn.lpstrtitle = "匯出資料(世貿**會員管理系統-客戶端)";

int structsize=0;

dword dwversion,dwwindow**ajorversion,dwwindow**inorversion;

//檢測目前的作業系統,getversion具體用法詳見msdn

dwversion = getversion();

dwwindow**ajorversion = (dword)(lobyte(loword(dwversion)));

dwwindow**inorversion = (dword)(hibyte(loword(dwversion)));

// 如果執行的作業系統是windows nt/2000

if (dwversion < 0x80000000) 

structsize =88;//顯示新的檔案對話方塊

else

//執行的作業系統windows 95/98 

structsize =76;//顯示老的檔案對話方塊

dlgfileopen.m_ofn.lstructsize=structsize;

tchar lpstrfilename[max_path] = "";

dlgfileopen.m_ofn.lpstrfile=lpstrfilename;

if(dlgfileopen.domodal()==idok)

m_filename = filename;

return true;

}else

step3:開始從列表框取得資料,插入excel檔案中。

cstring sdriver1 = getexceldriver();

if (sdriver1.isempty())

cdatabase database;

cstring sdriver = "microsoft excel driver (*.xls)"; // excel安裝驅動

cstring ***celfile,spath;

cstring ssql;

//獲取主程式所在路徑,存在spath中

getmodulefilename(null,spath.getbuffersetlength (max_path+1),max_path);

spath.releasebuffer ();

int npos;

npos=spath.reversefind ('//');

spath=spath.left (npos);

if(!getfilename())

***celfile = m_filename;

try;dsn='';firstrowhasnames=1;readonly=false;create_db=%s;dbq=%s",sdriver, ***celfile, ***celfile);

// 建立資料庫 (既excel**檔案)

if( database.openex(ssql,cdatabase::noodbcdialog) )

catch_all(e)

end_catch_all;

本文所介紹的方法簡單、方便,不足之處在於不能夠設定excel檔案中的列寬。

利用ODBC連線資料庫

例子用到的資料庫是mysql 新增資料來源 建立mfc 基佬於對話方塊的工程odbc 在工程裡新增標頭檔案 include afxdb.h 建立cdatabase類的物件 cdatabase db 接下來就是連線資料庫了,在oninitdialog函式裡新增 判斷資料庫是否開啟 if db.isop...

資料庫互導

1 sqlserver與access互導 方法一 用sql語句 匯出到access insert into openrowset microsoft.jet.oledb.4.0 x a.mdb admin a表 select from 資料庫名.b表 匯入access insert into b表 ...

centos postgresql資料庫匯入匯出

匯入整個資料庫 psql u postgres 使用者名稱 資料庫名 預設時同使用者名稱 data dum.sql 匯出整個資料庫 pg dump h localhost u postgres 使用者名稱 資料庫名 預設時同使用者名稱 data dum.sql 匯出某個表 pg dump h loc...

ODBC資料庫介面(2)

前幾天發了一個不完整版的odbc介面類,昨天重新整理 測試了一下,重新發一個。odbc dbmgr.h ifndef odbc dbmgr h define odbc dbmgr h include include include include class odbc dbmgr odbc dbmg...

oracle資料庫導庫問題

一 dmp導庫過程中,資料量小的表匯入成功,到資料量大的表時開始報錯。發現原庫的表空間是users,匯入新庫後預設表空間是users,根據錯誤提示檢視新庫的的表空間users空間不大。採取源庫 新庫的表空間更換。imp 00058 遇到 oracle 錯誤 1653 ora 01653 表 zrzy...