版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
vc++使用MFC操作EXCEL文件創(chuàng)建+編輯+保存使用MFC操作EXCEL文件本文檔適用于:?MicrosoftFoundationClasses(MFC),MicrosoftVisualC++,32-bitEditions,version6.0以上?MicrosoftOLE庫第一步:建立一個(gè)自動(dòng)化工程1.啟動(dòng)VC6.0,打開新建對話框,新建一個(gè)MFCAppWizard(exe)工程,這里工程明設(shè)置為TestExcel。2,進(jìn)入MFC應(yīng)用程序向?qū)?,選擇基本對話框,直接點(diǎn)擊完成,工程文件結(jié)構(gòu)如下圖:3,打開MFCClassWizard窗口(查看一建立類向?qū)?,選擇Automation,單擊AddClass按鈕,選擇Fromatypelibrary...,彈出文件選擇對話框,之后定位到MicrosoftOffice的安裝目錄(通常為C:\\ProgramFiles\\MicrosoftOffice\\Office),選擇EXCEL9,OLBClasses窗口,選擇列表中的所有類,單擊OK按鈕。注意,確定后,彈出Confirm注意文件名EXCEL9.OLB,因安裝的Office版本不同而有所差異,EXCEL9,OLB對應(yīng)的是MicrosoftOffice2000,微軟命名方式為Excel+數(shù)字的形式,Office版本越高,數(shù)字越大。//注意,Excel003的文件是:C:\\ProgramFiles\\MicrosoftOffice\\*****1\\Excel.exe返回編輯器,查看工程文件,可發(fā)現(xiàn)多了EXCEL9.H及EXCEL9.CPP兩個(gè)文件。5.打開stdafx.h頭文件確保包含如下頭文件:#include#include\6,打開TestExcel.cpp文件,修改CTestExcelApp::InitInstance(),加入如下代碼:BOOLCTestExcelApp::InitInstance(){if(!AfxOleInit()){AfxMessageBox(\初始化Ole出錯(cuò)!\returnFALSE;}AfxEnableControlContainer(); returnFALSE;}為保證編譯時(shí)不產(chǎn)生重復(fù)定義錯(cuò)誤,打開excel9.h文件,在文件開始位置加入如下代碼:#if!defined_HEAD_FILE_EXCEL9_#define_HEAD_FILE_EXCEL9_相應(yīng)的,在文件末尾加入:#endif至U此,OLE自動(dòng)化工程建立完成。按下F7,看是否能通過編譯。\\\\注意:編譯時(shí)可能缺少DLL文件,如mfc42d.dll、msvcrtd.dll、mfco42d.dll,下載后放入C:\\*****\\system32文件夾第二步:操作EXCEL文件1,選擇ResourceView工作區(qū),打開IDD_*****EL_DIALOG,在對話框中添加一個(gè)按鈕控件8口壯0門1,雙擊它,生成一個(gè)ButtonlClick事件的處理函數(shù):voidCTestExcelDlg::OnButton1(){//TODO:Addyourcontrolnotificationhandlercodehere}2.在OnButton1()函數(shù)中,添加代碼:voidCTestExcelDlg::OnButton1(){//TODO:Addyourcontrolnotificationhandlercodehere_Applicationapp;Workbooksbooks;_Workbookbook;Worksheetssheets;_Worksheetsheet;Rangerange;Fontfont;Rangecols;COleVariant covOptional((long)DISP_E_*****TFOUND,VT_ERROR);if(!app.CreateDispatch(\this-MessageBox(\無法創(chuàng)建Excel應(yīng)用!\return;}books=app.GetWorkbooks();book=books.Add(covOptional);sheets=book.GetSheets();sheet=sheets.GetItem(COleVariant((short)1));range=sheet.GetRange(COleVariant(\range.SetValue(COleVariant(\//Excel2003函數(shù)為SetValuefont=range.GetFont();font.SetBold(COleVariant((short)TRUE));range=sheet.GetRange(COleVariant(\range.SetFormula(COleVariant(\range.SetNumberFormat(COleVariant(\cols=range.GetEntireColumn();cols.AutoFit();app.SetVisible(TRUE);app.SetUserControl(TRUE);}3,按下Ctrl+F5,執(zhí)行程序。按下Buttonl,將會(huì)彈出Excel窗口:到此,即完成了我們的示例程序,下面將對程序進(jìn)行詳細(xì)的說明,如果大家有過使用VisualBasic操作Excel程序的經(jīng)驗(yàn),則應(yīng)該能看懂下面程序:voidCTestExcelDlg::OnButton1(){//TODO:Addyourcontrolnotificationhandlercodehere/*先創(chuàng)建一個(gè)一Application類,用—Application來創(chuàng)建一個(gè)Excel應(yīng)用程序接口。Excel接口類中層次如下所示:--Application-Workbooks工作薄集合-_Workbook工作薄-Worksheets工作表集合--Worksheet工作表-Range單元格區(qū)域故要操作表,必須先逐步獲取Workbooks-Workbook-Worksheets-Worksheet-Range*/-Applicationapp;Workbooksbooks;-Workbookbook;Worksheetssheets;-Worksheetsheet;Rangerange;//Excel中針對單元格的操作都應(yīng)先獲取其對應(yīng)的Range對象Fontfont;Rangecols;/*COleVariant類為*****數(shù)據(jù)類型的包裝,在自動(dòng)化程序中,通常都使用*****數(shù)據(jù)類型進(jìn)行參數(shù)傳遞。故下列程序中,函數(shù)參數(shù)都是通過COleVariant類來轉(zhuǎn)換了的。*///covOptional可選參數(shù)的*****類型COleVariant covOptional((long)DISP_E_*****TFOUND,VT_ERROR);if(!app.CreateDispatch(\this-MessageBox(\無法創(chuàng)建Excel應(yīng)用!\return;}//獲取工作薄集合books=app.GetWorkbooks();//添加一個(gè)工作薄book=books.Add(covOptional);//獲取工作表集合sheets=book.GetSheets();//獲取第一個(gè)工作表sheet=sheets.GetItem(COleVariant((short)1));//選擇工作表中A1:A1單元格區(qū)域range=sheet.GetRange(COleVariant(\//設(shè)置A1=HELLOEXCEL!\range.SetValue(COleVariant(\//調(diào)整格式,設(shè)置粗體font=range.GetFont();font.SetBold(COleVariant((short)TRUE));//選擇A2單元格,插入一個(gè)公式\,并設(shè)置A2數(shù)字格式為貨幣形式 range=sheet.GetRange(COleVariant(\range.SetFormula(COleVariant(\range.SetNumberFormat(COleVariant(\//選擇A:A列,設(shè)置寬度為自動(dòng)適應(yīng)cols=range.GetEntireColumn();cols.AutoFit();//顯示Excel表格,并設(shè)置狀態(tài)為用戶可控制app.SetVisible(TRUE);app.SetUserControl(TRUE);5.如何自動(dòng)保存我們生成的Excel文件?通過Workbook對象的SaveAs方法即可實(shí)現(xiàn):book.SaveAs(COleVariant(\covOptional,covOptional,covOptional,covOptional,(long)0,covOptional,covOptional,covOptional,covOptional);〃注意Excel2003的SaveAs函數(shù)參數(shù)不同,代碼應(yīng)寫為:/*void_Workbook::SaveAs(const*****Filename,1COleVariantVOptional((long)DISP_E_*****TFOUND,VT_ERROR);book.SaveAs(COleVariant(\VOptional,VOptional,VOptional,VOptional,VOptional,(long)0,VOptional,VOptional,VOptional,VOptional,VOptional);const*****FileFormat,const*****Password,const*****const*****ReadOnlyRecommended,const*****CreateBackup,const*****ConflictResolution,1const*****AddToMru,const*****TextCodepage,2const*****TextVisualLayout,const*****Local2WriteResPassword,3longAccessMode,3)*/range.SetNumberFormat(COleVariant(\//選擇A:A列,設(shè)置寬度為自動(dòng)適應(yīng)cols=range.GetEntireColumn();cols.AutoFit();//顯示Excel表格,并設(shè)置狀態(tài)為用戶可控制app.SetVisible(TRUE);app.SetUserControl(TRUE);5.如何自動(dòng)保存我們生成的Excel文件?通過Workbook對象的SaveAs方法即可實(shí)現(xiàn):book.SaveAs(COleVariant(\covOptional,covOptional,covOptional,covOptional,(long)0,covOptional,covOptional,covOptional,covOptional);〃注意Excel2003的SaveAs函數(shù)參數(shù)不同,代碼應(yīng)寫為:/*void_Workbook::SaveAs(const*****Filename,1COleVariantVOptional((long)DISP_E_*****TFOUND,VT_ERROR);book.SaveAs(COleVariant(\VOptional,VOptional,VOptional,VOptional,VOptional,(long)0,VOptional,VOptional,VOptional,VOptional,VOptional);const*****FileFormat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 森林消防現(xiàn)場勘查方案
- 貸款的購車合同范本
- 昆山化工潔凈室施工方案
- 2024年裝修工程承包協(xié)議版B版
- 珠海手動(dòng)報(bào)警按鈕施工方案
- 沉浸于做高考數(shù)學(xué)試卷
- 2024年餐飲服務(wù)行業(yè)標(biāo)準(zhǔn)勞務(wù)派遣合同樣本版B版
- 農(nóng)場水地暖施工合同
- 美容院員工服務(wù)手冊
- 建筑采購廉潔承諾書
- 2024年中國陶瓷碗盆市場調(diào)查研究報(bào)告
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之22:“8運(yùn)行-8.1運(yùn)行策劃和控制”(雷澤佳編制-2025B0)
- 2024-2030年中國硅肥行業(yè)規(guī)模分析及投資前景研究報(bào)告
- 電網(wǎng)行業(yè)工作匯報(bào)模板22
- 2024年度跨境電商平臺承包經(jīng)營合同3篇
- 2025年上半年人民日報(bào)社招聘應(yīng)屆高校畢業(yè)生85人筆試重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 神經(jīng)外科基礎(chǔ)護(hù)理課件
- 山東省臨沂市2023-2024學(xué)年高二上學(xué)期期末考試生物試題 含答案
- 2024-2025學(xué)年一年級數(shù)學(xué)上冊期末樂考非紙筆測試題(二 )(蘇教版2024秋)
- 辦公樓電氣改造施工方案
- 內(nèi)蒙古赤峰市2023-2024學(xué)年高一上學(xué)期期末考試物理試題(含答案)
評論
0/150
提交評論