编程语言
首页 > 编程语言> > VC++-ADO/COM组件实现文字上标下标功能

VC++-ADO/COM组件实现文字上标下标功能

作者:互联网

今天在群里看到有个兄弟问到怎么MFC项目用代码去写入带有上标下标的内容这个问题。我去百度了一下,然后写了个demo

 

参考博客http://blog.sina.com.cn/s/blog_5432e0220102w6e1.html

 

//当前sheet单元格写入上标和下标
void ExcelApi::SetRangeDataSubscript(const int row, const int column, const char* Data, int type)
{
    if (IsOpenBook != true)
    {
        AfxMessageBox("请先打开工作簿!");
        return;
    }

    //得到全部Cells,此时,userRange是cells的集合
    ExcelRange.AttachDispatch(ExcelSheet.get_Cells(), TRUE);

    //设置表格内容
    ExcelRange.put_Item(COleVariant((long)row), COleVariant((long)column), COleVariant(_T(Data)));

    //得到单元格
    LPDISPATCH pDispatch = ExcelSheet.get_Cells();
    CRange ExcelRange1;
    ExcelRange1.AttachDispatch(pDispatch);
    ExcelRange.AttachDispatch(ExcelRange1.get_Item(COleVariant((long)row), COleVariant((long)column)).pdispVal);

    //代表字符范围这里取从第二个起共一个字符(根据不同的需求,自己来修改代码截取字符串)
    CRange ExcelRange2;
    ExcelRange2.AttachDispatch(ExcelRange.get_Characters(_variant_t(2), _variant_t(1)));//从单元格第二个起,一个字符
    ft.AttachDispatch(ExcelRange2.get_Font());

    //设置上标下标
    if (type == 1)
    {
        ft.put_Superscript(_variant_t(true));// 如果是SetSubscript即上标
    }
    else
    {
        ft.put_Subscript(_variant_t(true));//下标
    }

}

 

完整代码

EXCEL2016 OLE/COM开发-常用功能封装代码(不断更新完善)

 

阿飞

2021年9月10日

 

标签:AttachDispatch,get,C++,COleVariant,long,ADO,ExcelRange,上标,COM
来源: https://www.cnblogs.com/nxopen2018/p/15253153.html