今天在群里看到有个兄弟问到怎么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日