兩種VC操縱EXCEL的方法

2021-05-22 22:37:53 字數 1732 閱讀 1428

第一種方法,簡單的,用cdatabase實現. 程式是乙個基於對話方塊的,步驟:

a,為了避免**重複,設定下面幾個全域性變數(類範圍的),要引入標頭檔案

cdatabase m_db;                     //資料庫

cstring m_dbdriver;                 //要生成的excel檔案的目錄

char m_path[max_path];       //獲取路徑用的陣列

cstring m_strdir;                      //包括excel檔名在內的路徑名.

cstring m_strsql;                    //sql命令語句,用m_db可直接執行.

b,在oninitdialog方法中,生成乙個xls檔案,並插入兩條記錄,可在try語句中進行,因為這裡面要建立一張表,當再次啟動程式時,會有異常發生,說表已經存在了,這時就避免了重複建立和插入.**如下:

m_dbdriver="microsoft excel driver (*.xls)";

getcurrentdirectory(max_path,m_path);

m_strdir=m_path;

m_strdir+="//test.xls";             //上面初始化各個變數.

m_strsql.format("driver=;dsn='''';firstrowhasnames=1;readonly=false;create_db=/"%s/";dbq=%s",m_dbdriver,m_strdir,m_strdir);

try}

catch_all(e)

end_catch_all;

c,其實上面已經達到了答題人的要求,但作為乙個程式,這也太不像話了,於是我又稍微加了點不值一提的東西,在對話方塊上輸入資訊,再插入到excel表中去,這一切都在按下"插入"按鈕後發生:

updatedata();

m_strsql.format("driver=;dsn='''';firstrowhasnames=1;readonly=false;create_db=/"%s/";dbq=%s", m_dbdriver,m_strdir,m_strdir);

try}

catch_all(e)

end_catch_all;

m_db.close();

可以說,只要對cdatabase稍有了解,對sql語句稍有了解,這個問題就很容易解決,如果要說這是乙個針對excel檔案操作的方法,那是因為在openex初始化資料庫物件(不是"開啟"哦)時用的檔案字尾名為.xls而已,我們可以像在普通的資料庫中一樣進行其他操作,如用select語句來讀取excel檔案的內容等, 第一種方法完.

下面是第二種方法,這裡涉及的原理要複雜一些了,傳說中的ole(物件鏈結與嵌入)技術在這裡用上了,excel.exe作為乙個元件伺服器,應用程式作為客戶端......,還是直接寫過程吧,頭暈暈的,只能平鋪直述了.

b,在dlg.h中宣告下面幾個變數:

d,與上面第一種方法一樣,可以插入記錄:

updatedata();     //讀入資料

if (""==m_name)     //判斷名字輸入有效

if (0>=m_age||100<=m_age)  //判斷年齡輸入有效

char *p=strupr(_strdup(m_gener));

if (strcmp(p,"female")&&strcmp(p,"male")) //判斷性別輸入有效

兩種VC操縱EXCEL的方法

第一種方法,簡單的,用cdatabase實現.程式是乙個基於對話方塊的,步驟 a,為了避免 重複,設定下面幾個全域性變數 類範圍的 要引入標頭檔案 cdatabase m db 資料庫 cstring m dbdriver 要生成的excel檔案的目錄 char m path max path 獲取...

VC操縱EXCEL的兩種方法

第一種方法,簡單的,用cdatabase實現.程式是乙個基於對話方塊的,步驟 a,為了避免 重複,設定下面幾個全域性變數 類範圍的 要引入標頭檔案 cdatabase m db 資料庫 cstring m dbdriver 要生成的excel檔案的目錄 char m path max path 獲取...

VC 中dll的兩種匯出方法

若要確定用於匯出函式的方法 def 檔案或 declspec dllexport 關鍵字 請回答下列問題 在 def 檔案中匯出函式使您得以控制匯出序號。當將附加的匯出函式新增到 dll 時,可以給它們分配更高的序號值 高於任何其他匯出函式 當您進行此操作時,使用隱式鏈結的應用程式不必與包含新函式的...