久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3522|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

MFC 操作EXCEL VS2008

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:60266 發(fā)表于 2014-8-18 02:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
MFC 基于對話框,對EXCEL操作;步驟如下:
1:新建MFC 對話框 工程
2:項目->添加類->TypeLib中的MFC類->選擇“從"文件"來源添加類”,位置為excel的安裝路徑->設(shè)置好之后,就會出現(xiàn)很多的接口,選擇其中常用的接口接口滿足要求,具體的有5類常用接口:_Application、_Workbook、_Worksheet、Workbooks、Worksheets、Range,這6類會對應(yīng)生成6個.h文件添加到工程中,以后在工程中直接調(diào)用這些類的函數(shù)即可完成對excel的各種操作。



3:初始化工作,非常重要,在  BOOL CxxxApp::InitInstance()函數(shù)中進(jìn)行初始化;
   A:,該函數(shù)是主對話框的初始化函數(shù),在INT_PTR nResponse = dlg.DoModal()之前添加下面代碼
        if (CoInitializeEx(NULL,COINIT_MULTITHREADED)!=0)
{
AfxMessageBox("初始化COM支持庫失敗!");
exit(1);
}
INT_PTR nResponse = dlg.DoModal();
   B:在return FALSE;前可加入關(guān)閉excel進(jìn)程以及釋放對象的語句,
if (ExcelSave  == 0) {
    book.put_Saved(true);
}
books.Close();   
        app.Quit();// 退出  
        //釋放對象   
    range.ReleaseDispatch();  
    sheet.ReleaseDispatch();  
     sheets.ReleaseDispatch();  
    book.ReleaseDispatch();  
    books.ReleaseDispatch();  
    app.ReleaseDispatch();
CoUninitialize();
return FALSE;


4:利用模板建立新的文檔
if(!app.CreateDispatch("Excel.Application"))  
{  
AfxMessageBox("無法啟動Excel服務(wù)器!");  
return false;  
}  
books.AttachDispatch(app.get_Workbooks(),true);
book = books.Add(covOptional);
//得到Worksheets
sheets.AttachDispatch(book.get_Worksheets(),true);
//得到sheet1
sheet.AttachDispatch(sheets.get_Item(_variant_t("sheet1")),true);
//得到全部Cells,此時,rgMyRge是cells的集合
range.AttachDispatch(sheet.get_Cells(),true);


5:excel保存

//選擇目錄按鈕
    char szPath[MAX_PATH];     //存放選擇的目錄路徑
    CString str;
    CString str1;
int temp = 0;
    ZeroMemory(szPath, sizeof(szPath));   
    BROWSEINFO bi;   
    bi.hwndOwner = m_hWnd;   
    bi.pidlRoot = NULL;   
    bi.pszDisplayName = szPath;   
    bi.lpszTitle = "請選擇文件保存的路徑:";   
    bi.ulFlags = 0;   
    bi.lpfn = NULL;   
    bi.lParam = 0;   
    bi.iImage = 0;   
    //彈出選擇目錄對話框
    LPITEMIDLIST lp = SHBrowseForFolder(&bi);   

    if(lp && SHGetPathFromIDList(lp, szPath))   
    {
        //str.Format("數(shù)據(jù)文件data.xls保存在 %s",  szPath);
       // AfxMessageBox(str);
temp = 1;
    }
    else   
        AfxMessageBox("無效的目錄,請重新選擇");   

///////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
if (temp == 0) {
return;
}
//居中
CString   strlt,strrd;
strlt= "A1 ";
strrd= "E4 ";
//range.AttachDispatch(sheet.get_Range(_variant_t(strlt),_variant_t(strrd)),true);
range.AttachDispatch(sheet.get_UsedRange());
range.put_HorizontalAlignment(_variant_t((long)3));
//book.SaveCopyAs(_variant_t());
//book.SaveCopyAs(_variant_t("C:\\Users\\Administrator\\Desktop\\laaaq.xls"));
str = szPath;
if (str.GetLength() > 3) {
str += "\\data.xls";
} else {
str += "data.xls";
}
book.SaveAs(COleVariant(str),covOptional,covOptional,covOptional,covOptional,covOptional,0,covOptional,covOptional,covOptional,covOptional,covOptional);

6:excel操作舉例
//合并單元格
CString str;
str="節(jié)點A";
range=sheet.get_Range(COleVariant("A1"),COleVariant("A1"));
range.put_Value2(COleVariant(str));
range=sheet.get_Range(COleVariant("A1"),COleVariant("C1"));
range.Select();
range.Merge(COleVariant((long)0));
str="節(jié)點B";
range=sheet.get_Range(COleVariant("D1"),COleVariant("D1"));
range.put_Value2(COleVariant(str));
range=sheet.get_Range(COleVariant("D1"),COleVariant("F1"));
range.Select();
range.Merge(COleVariant((long)0));
str="節(jié)點C";
range=sheet.get_Range(COleVariant("G1"),COleVariant("G1"));
range.put_Value2(COleVariant(str));
range=sheet.get_Range(COleVariant("G1"),COleVariant("I1"));
range.Select();
range.Merge(COleVariant((long)0));
range.AttachDispatch(sheet.get_Cells(),true);
range.put_Item(_variant_t((long)2),_variant_t((long)1),_variant_t("XA"));
range.put_Item(_variant_t((long)2),_variant_t((long)2),_variant_t("YA"));
range.put_Item(_variant_t((long)2),_variant_t((long)3),_variant_t("ZA"));
range.put_Item(_variant_t((long)2),_variant_t((long)4),_variant_t("XB"));
range.put_Item(_variant_t((long)2),_variant_t((long)5),_variant_t("YB"));
range.put_Item(_variant_t((long)2),_variant_t((long)6),_variant_t("ZB"));
range.put_Item(_variant_t((long)2),_variant_t((long)7),_variant_t("XC"));
range.put_Item(_variant_t((long)2),_variant_t((long)8),_variant_t("YC"));
range.put_Item(_variant_t((long)2),_variant_t((long)9),_variant_t("ZC"));



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区2区| 91成人在线视频 | 视频一区二区中文字幕 | 精品国产乱码久久久久久影片 | 欧美日韩高清在线一区 | 久久精品a级毛片 | 中文字幕一区在线观看视频 | 天天干成人网 | 亚洲精品日韩一区二区电影 | 国产免费让你躁在线视频 | 欧美国产精品久久久 | 一区二区三区日韩 | 国产欧美精品一区二区三区 | 男女羞羞视频网站 | 中文字幕精品一区二区三区精品 | 欧美中文字幕在线观看 | 精品欧美乱码久久久久久1区2区 | 一级欧美 | 国产精久久久久久久妇剪断 | 精品三区 | 中国免费黄色片 | 久草新在线 | 伊人亚洲| 91成人午夜性a一级毛片 | 91精品欧美久久久久久久 | 国产午夜精品久久 | 在线看中文字幕 | 色综合一区二区三区 | 欧美色综合一区二区三区 | 久久精品亚洲国产 | 国产视频综合 | 99综合| 欧美一级小视频 | 成人av片在线观看 | 久久免费精品 | 视频三区 | 亚洲欧美激情网 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 日本特黄a级高清免费大片 特黄色一级毛片 | .国产精品成人自产拍在线观看6 | 欧美激情a∨在线视频播放 成人免费共享视频 |