天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 7|回复: 0

OnExceloleLoad

[复制链接]
  • TA的每日心情
    开心
    昨天 15:23
  • 签到天数: 69 天

    [LV.6]常住居民II

    410

    主题

    167

    回帖

    2704

    积分

    管理员

    积分
    2704
    发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
    OnExceloleLoad()
    {
    LPDISPATCH pDisp;
    LPUNKNOWN pUnk;
    CLSID clsid;
    BeginWaitCursor();
    ::CLSIDFromProgID(L"Excel.Application.8", &clsid); // CLSID
    if(::GetActiveObject(clsid, NULL, &pUnk) == S_OK) {
    VERIFY(pUnk->QueryInterface(IID_IDispatch,
    (void**) &pDisp) == S_OK);
    m_app.AttachDispatch(pDisp);
    pUnk->Release();
    }
    else {
    if(!m_app.CreateDispatch("Excel.Application.8")) {
    AfxMessageBox("Programm Excel 97 not found");
    }
    ;
    }
    EndWaitCursor();
    }

    with a code like this you have access to the cells of excel

    OnExceloleExecute()
    {
    LPDISPATCH pRange, pWorkbooks;

    CWnd* pWnd = CWnd::FindWindow("XLMAIN", NULL);
    if (pWnd != NULL) {
    TRACE("Excel window found\n");
    pWnd->ShowWindow(SW_SHOWNORMAL);
    pWnd->UpdateWindow();
    pWnd->BringWindowToTop();
    }

    m_app.SetSheetsInNewWorkbook(1);

    VERIFY(pWorkbooks = m_app.GetWorkbooks());
    m_workbooks.AttachDispatch(pWorkbooks);

    LPDISPATCH pWorkbook = NULL;
    if (m_workbooks.GetCount() == 0) {
    pWorkbook = m_workbooks.Add();
    }
    LPDISPATCH pWorksheets = m_app.GetWorksheets();
    ASSERT(pWorksheets != NULL);
    m_worksheets.AttachDispatch(pWorksheets);
    LPDISPATCH pWorksheet = m_worksheets.GetItem(COleVariant((short) 1));

    m_worksheet.AttachDispatch(pWorksheet);
    m_worksheet.Select();

    VERIFY(pRange = m_worksheet.GetRange(COleVariant("A1")));
    m_range[0].AttachDispatch(pRange);

    VERIFY(pRange = m_worksheet.GetRange(COleVariant("A2")));
    m_range[1].AttachDispatch(pRange);

    VERIFY(pRange = m_worksheet.GetRange(COleVariant("A3")));
    m_range[2].AttachDispatch(pRange);

    VERIFY(pRange = m_worksheet.GetRange(COleVariant("A3"),
    COleVariant("C5")));
    m_range[3].AttachDispatch(pRange);

    VERIFY(pRange = m_worksheet.GetRange(COleVariant("A6")));
    m_range[4].AttachDispatch(pRange);

    m_range[4].SetValue(COleVariant(COleDateTime(1998, 4, 24, 15, 47, 8)));
    COleVariant vaTimeDate = m_range[4].GetValue();
    COleVariant vaTemp;
    vaTemp.ChangeType(VT_BSTR, &vaTimeDate);
    CString str = vaTemp.bstrVal;
    TRACE("date = %s\n", (const char*) str);

    m_range[0].SetValue(COleVariant("Test-String"));

    COleVariant vaResult0 = m_range[0].GetValue();
    if (vaResult0.vt == VT_BSTR) {
    CString str = vaResult0.bstrVal;
    TRACE("vaResult0 = %s\n", (const char*) str);
    }

    m_range[1].SetValue(COleVariant(3.14159));

    COleVariant vaResult1 = m_range[1].GetValue();
    if (vaResult1.vt == VT_R8) {
    TRACE("vaResult1 = %f\n", vaResult1.dblVal);
    }

    m_range[2].SetFormula(COleVariant("=$A2*2.0"));

    COleVariant vaResult2 = m_range[2].GetValue();
    if (vaResult2.vt == VT_R8) {
    TRACE("vaResult2 = %f\n", vaResult2.dblVal);
    }

    COleVariant vaResult2a = m_range[2].GetFormula();
    if (vaResult2a.vt == VT_BSTR) {
    CString str = vaResult2a.bstrVal;
    TRACE("vaResult2a = %s\n", (const char*) str);
    }

    m_range[3].FillRight();
    m_range[3].FillDown();

    // cleanup
    if (pWorkbook != NULL) {
    pWorkbook->Release();
    }
    }

     

     

     

     

    OnExceloleLoad
    中国膜结构网打造全中国最好的膜结构综合平台 ,统一协调膜结构设计,膜结构施工,膜材采购,膜材定制,膜结构预算全方位服务。 中国空间膜结构协会合作单位。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|

    GMT+8, 2024-7-1 05:35 , Processed in 0.057465 second(s), 22 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表