C/C++教程

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日

 

这篇关于VC++-ADO/COM组件实现文字上标下标功能的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!