首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

VC EXCEL 字体加粗,该如何处理

2012-01-10 
VC EXCEL 字体加粗//输出合计,把合计那一排的所有格都设置成SUM(XX:XX)格式strhanghaoheji.Format(%d,h

VC EXCEL 字体加粗
//输出合计,把合计那一排的所有格都设置成=SUM(XX:XX)格式
strhanghaoheji.Format("%d",hanghao+2);
rgMyRge.SetItem(_variant_t(strhanghaoheji),_variant_t("B"),_variant_t("合计"));
CString hejihou="";
for (int m=0;m<25;m++)
{
hejihou = "=SUM("+lieall[m]+"6:"+lieall[m]+strhanghao+")";
rgMyRge.SetItem(_variant_t(strhanghaoheji),_variant_t(lieall[m]),_variant_t(hejihou));
}
  //合计输出经过测试,无错。在EXCEL里能正常生成。
//设置合计那一排为粗体
COleFont ft;
CString hejileft,hejiright="";
hejileft = "A"+strhanghaoheji;
hejiright = "AD"+strhanghaoheji;
rgMyRge.AttachDispatch(wsMysheet.GetRange(_variant_t(hejileft),_variant_t(hejiright))); 
ft.AttachDispatch(rgMyRge.GetFont());//注释掉之后无错但无法实现加粗
ft.SetBold(TRUE);

编译无错,但运行提示:找不到成员。
把红色那一行注释掉,就不会提示“找不到成员”,但无法实现字体加粗的效果。

恳请各位老师的帮助!

[解决办法]
把你的 COleFont 用ExcelFont代替 或者引入Excel的Font类

Range range(sheet.GetRange(_variant_t(_T("A1")),_variant_t(_T("A1))
ExcelFont font;
font.AttachDispatch(range.GetFont());
if(font.m_lpDispatch)
{
font.SetItalic( _variant_t( (style & FONT_ITALIC)? true:false ) ); //倾斜
font.SetBold( _variant_t( (style & FONT_BOLD)? true:false ) ); //加粗
font.SetUnderline( _variant_t( (style & FONT_UNDERLINE)? true:false ) ); //下划线
}

C/C++ code
/////////////////////////////////////////////////////////////////////////////// ExcelFont wrapper classclass ExcelFont : public COleDispatchDriver{public:    ExcelFont() {}        // Calls COleDispatchDriver default constructor    ExcelFont(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}    ExcelFont(const ExcelFont& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}// Attributespublic:// Operationspublic:    LPDISPATCH GetApplication();    long GetCreator();    LPDISPATCH GetParent();    VARIANT GetBackground();    void SetBackground(const VARIANT& newValue);    VARIANT GetBold();    void SetBold(const VARIANT& newValue);    VARIANT GetColor();    void SetColor(const VARIANT& newValue);    VARIANT GetColorIndex();    void SetColorIndex(const VARIANT& newValue);    VARIANT GetFontStyle();    void SetFontStyle(const VARIANT& newValue);    VARIANT GetItalic();    void SetItalic(const VARIANT& newValue);    VARIANT GetName();    void SetName(const VARIANT& newValue);    VARIANT GetOutlineFont();    void SetOutlineFont(const VARIANT& newValue);    VARIANT GetShadow();    void SetShadow(const VARIANT& newValue);    VARIANT GetSize();    void SetSize(const VARIANT& newValue);    VARIANT GetStrikethrough();    void SetStrikethrough(const VARIANT& newValue);    VARIANT GetSubscript();    void SetSubscript(const VARIANT& newValue);    VARIANT GetSuperscript();    void SetSuperscript(const VARIANT& newValue);    VARIANT GetUnderline();    void SetUnderline(const VARIANT& newValue);}; 

热点排行