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));//下标
    }

}
  • 演示

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

 

完整代码

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

 

阿飞

2021年9月10日

 

上一篇:安卓报错显示详细Error:Execution failed for task ':app:compileDebugKotlin'. > Compilation error.


下一篇:关于ADO.NET的基本介绍