ATL development in Chart in Excel

ATL development in Chart in Excel

利 用Excel提供的類型庫, 對Excel文檔進行操作, 圖表的開發是一項痛苦的工作, 一個圖表是由多個series(系列)組成, 每個系列可以賦值不同的公式(formular). 本文對系列上顯示的標記文本和背景的顏色改變作一點探討, 由於是基於COM組件的ActiveX控件開發, 不同於用VBA腳本的開發, 相關內容在網上討論幾乎沒有. 我們已經創建一個chart在excel文檔, 詳見下面代碼: SeriesCollection serc; serc=chart.SeriesCollection(vtMissing); Series ser=serc.NewSeries(); Interior oInt = ser.GetInterior(); oInt.SetColor(_variant_t((long)0)); // 注意, 這段代碼會crash, 被註釋掉 //ser.SetMarkerBackgroundColor(RGB(0,0,0)); LPDISPATCH lpdisp = wssMysheets.GetItem(_variant_t("Info")); _Worksheet sheet; sheet.AttachDispatch(lpdisp); str1.Format("I%d", i); str2.Format("=Info!I%d", i); lpdisp=sheet.GetRange(COleVariant(str1), COleVariant(str1)); VARIANT var; var.vt = VT_DISPATCH; // .vt is the usable member of the tagVARIANT var.pdispVal = lpdisp; ser.SetValues(var); // 關鍵代碼... // 先適應數據標記 ser.ApplyDataLabels(2, // Show value vtMissing, vtMissing, vtMissing, vtMissing, vtMissing, _variant_t(true), vtMissing, vtMissing, vtMissing); // 得到缺省的數據標記 DataLabels dls = ser.DataLabels(vtMissing); // 得到數據標記字體 Font font = dls.GetFont(); // 對數據標記文本顏色修改! font.SetColor(_variant_t((long)RGB(255,255,255))); DataLabels有一個方法GetInterior(), 返回Interior對象, 調用其中的SetColor就可以改變標記文本的背景顏色.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章