C++之MFC基本设置
1 设置单元格的值
1)
选中指定单元格,使用SetValue设置值
CellName.Format(_T("A%d"),i);//单元格的名称
range.AttachDispatch(sheet.GetRange(COleVariant(CellName),COleVariant(CellName)));//加载单元格range.SetValue(COleVariant(subFileName));
CellName.Format(_T("C%d"),i);//单元格的名称
range.AttachDispatch(sheet.GetRange(COleVariant(CellName),COleVariant(CellName)));//加载单元格
range.SetValue(COleVariant((long)i));
2)
选中所有的单元格, 使用SetItem 设置指定单元格的值
range.AttachDispatch(sheet.GetCells(),TRUE);//加载所有单元格
//设置第I行 第1、2、3列的值
range.SetItem(COleVariant((long)(i)),COleVariant((long)1),COleVariant(subFileName)); //第一列
range.SetItem(COleVariant((long)(i)),COleVariant((long)2),COleVariant(unicodeStr)); //第二列
range.SetItem(COleVariant((long)(i)),COleVariant((long)3),COleVariant((long)i)); //第三列
2 设置行高列宽
选中某列 设置列宽
//获得所有列
range.AttachDispatch(sheet.GetColumns(),true);
//设置第一列的列宽 Range cols
cols.AttachDispatch(range.GetItem(COleVariant((long)1),vtMissing).pdispVal,TRUE);
cols.SetColumnWidth(COleVariant((long)10)); //设置列宽
//设置第4列的列宽
cols.AttachDispatch(range.GetItem(COleVariant((long)4),vtMissing).pdispVal,TRUE);
cols.SetColumnWidth(COleVariant((long)10)); //设置列宽
//设置列宽为自动适应
cols.AutoFit();
设置行高
Range rows;
range.AttachDispatch(sheet.GetRows(),TRUE);
//选择第一行
rows.AttachDispatch(range.GetItem(COleVariant((long)1),vtMissing).pdispVal);
//设置行高
rows.SetRowHeight(COleVariant((long)60));
注意: 行高列宽使用的单位不一样
3 设置单元格类型
range.AttachDispatch(sheet.GetCells(),TRUE);//加载所有单元格
range.SetNumberFormat(COleVariant(L"@")); //将单元格设置为文本类型
4 设置单元格字体
Font ft;
//设置第一列的字体
range.AttachDispatch(sheet.GetColumns(),true);
range.AttachDispatch(range.GetItem(COleVariant((long)1),vtMissing).pdispVal,TRUE);
//字体作用范围
ft.AttachDispatch(range.GetFont());
ft.SetName(COleVariant(_T("宋体")));
ft.SetSize(COleVariant((long)48));
ft.SetBold(COleVariant((long)1));//粗体
ft.SetColorIndex(COleVariant((long)2));//设置字体颜色
5 设置单元格背景色
range.AttachDispatch(sheet.GetRange(COleVariant(_T("A1")),COleVariant(_T("D1"))));
//////////////设置底色/////////////////
Interior it;
it.AttachDispatch(range.GetInterior());
it.SetColorIndex(COleVariant((long)11));//标题底色
////表格内容的底色////
range.AttachDispatch(sheet.GetRange(COleVariant(_T("A2")),COleVariant(_T("D5"))));
it.AttachDispatch(range.GetInterior());
it.SetColorIndex(COleVariant((long)15));
6 设置表格边框
1)
range.AttachDispatch(sheet.GetRange(COleVariant(_T("A2")),COleVariant(_T("D5"))));
//LineStyle=线型Weight=线宽ColorIndex=线的颜色(-4105为自动)
range.BorderAround(COleVariant((long)1),(long)2,((long)-4105),vtMissing);//设置边框
2)
range.AttachDispatch(sheet.GetRange(COleVariant(_T("A2")),COleVariant(_T("D5"))));
_variant_t v1; //线型
_variant_t v2; //宽度
_variant_t v3; //颜色
v1.vt=VT_I2;
v1.lVal=2; // 线的样式:- no line; 1-solid; 2-big dot;3-small dot;4-dash dot; 5-dash dot dot;
v2.vt=v1.vt;
v2.lVal=3; // 线的粗细程度
v3.vt=v1.vt;
v3.lVal=1; // 1-black;2-white;3-red;4-green;5-blue; 6-yellow; 7-pink;8-dark blue;
UnitRge.BorderAround(v1,v2,v3,vtMissing);//设置边框
7 合并单元格
1)
//合并单元格
//加载要合并的单元格
range.AttachDispatch(sheet.GetRange(COleVariant(_T("A1")),COleVariant(_T("D1"))),TRUE);
range.Merge(COleVariant((long)0));
2)
//将第一个单元格合并成行,列
range.AttachDispatch(sheet.GetCells());
unionRange.AttachDispatch(range.GetItem (COleVariant((long)1),COleVariant((long)1)).pdispVal ); //第一个单元格
unionRange.AttachDispatch(unionRange.GetResize(COleVariant((long)3),COleVariant((long)2))); //GetResize(3,2) 从第一个单元格开始合并行列的所有单元格
unionRange.Merge(COleVariant((long)0)); //合并单元格
8 设置单元格文本为自动换行 及排列方式
range.AttachDispatch(sheet.GetUsedRange());//加载已使用的单元格
range.SetWrapText(COleVariant((long)1));//设置单元格内的文本为自动换行
//设置齐方式为水平垂直居中
//水平对齐:默认=1,居中=-4108,左=-4131,右=-4152
//垂直对齐:默认=2,居中=-4108,左=-4160,右=-4107
range.SetHorizontalAlignment(COleVariant((long)-4108));
range.SetVerticalAlignment(COleVariant((long)-4108));
9 在单元格中插入公式
//选择A2单元格,插入一个公式"=RAND()*100000",并设置A2数字格式为货币形式
range=sheet.GetRange(COleVariant(L"A2"),COleVariant(L"A2"));
range.SetFormula(COleVariant(L"=RAND()*100000"));
range.SetNumberFormat(COleVariant(L"$0.00"));
10 在单元格中插入图片
Shapes shapes = sheet.GetShapes();// 从Sheet对象上获得一个Shapes
range.AttachDispatch(sheet.GetRange(COleVariant(L"E5"),COleVariant(L"E5"))); // 获得Range对象,用来插入图片
shapes.AddPicture( L"d:\\pic.bmp " , false , true , (float)range.GetLeft().dblVal
,(float)range.GetTop().dblVal,(float)range.GetWidth().dblVal,(float)range.GetHeight().dblVal);
ShapeRange sRange = shapes.GetRange(_variant_t(long(1)));
sRange.SetHeight(float(30)); //在RANGE范围内 设置图片宽高
sRange.SetWidth(float(30));
11 对选取的区域进行排序
#define xlAscending (long) 1
#define xlDescending (long) 2
#define vOpt COleVariant((long) DISP_E_PARAMNOTFOUND, VT_ERROR)
#define xlHeader (long) 1 // 选取的区域有标题
#define xlNoHeader (long) 2 // 选取的区域无标题 一定要正确确定是否有标题,否则排序可能不成功
#define xlMatchCase COleVariant((long) 1)
#define xlIgnoreCase COleVariant((long) 0)
#define xlTopToBottom (long) 1 // 垂直方向进行排序
#define xlLeftToRight (long) 2 // 水平方向进行排序
#define xlPinYin (long) 1 // this is the default // 按字符的中文拼音进行排序
#define xlStroke (long) 2 // 按每个字符中的笔画数进行排序
VARIANT key1; // these lines set up first arg (key1) to sort
V_VT(&key1) = VT_DISPATCH; // 排序时,关键字的vt设置为VT_DISPATCH
V_DISPATCH(&key1) = sheet.GetRange(COleVariant(L"A1"),COleVariant(L"A1")); // 设置按哪个关键字进行排序 选择单元意为:按此列(或行)为主关键字进行排序
range=sheet.GetRange(COleVariant(L"A1"),COleVariant(CellName)); // 选择对哪些区域内的单元格进行排序
range.Sort(key1, xlAscending, vOpt, vOpt, xlAscending, vOpt,xlAscending,xlNoHeader,vOpt,xlIgnoreCase,xlTopToBottom,xlPinYin); //设置排序 无标题时一定要设置为xlNoHeader 否则不起作用
---------------------
作者:shuilan0066
来源:CSDN
原文:https://blog.csdn.net/shuilan0066/article/details/7936383
版权声明:本文为博主原创文章,转载请附上博文链接!
C++之MFC基本设置的更多相关文章
- vs2010静态链接MFC库报链接错误
由于需要将MFC程序在其它电脑上运行,所以需要将动态链接的MFC改成静态链接,本以为很简单,没想到链接的时候出现下面的链接错误: uafxcw.lib(afxmem.obj) : error LNK2 ...
- MFC中成员变量的声明顺序与析构顺序
第一次用博客,第一篇随笔,就写今天遇到的一个问题吧. 在VS2008的MFC对话框程序,窗口成员变量的声明顺序与其析构顺序相反,即,先声明的变量后析构,后声明的变量先析构.未在其他模式下测试. cla ...
- VC中的MFC到底是什么?
1. 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API ...
- MFC&Halcon之实时视频监控
上一篇实现了在MFC的窗体内显示图片,本篇介绍如何在MFC窗体内实时显示摄像头的影像. 要实现的功能是点击一个“开始”按钮,可以显示影像,再点击“停止”按钮,可以停止显示. 因为实时显示影像需要在一个 ...
- MFC快速入门 - 菜单
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6231104.html 打开VS2010,依次打开File – New – Proje ...
- MFC画线功能总结
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6216464.html MFC画线功能要点有二:其一,鼠标按下时记录初始位置为线的起始 ...
- MFC消息映射机制以及画线功能实现
---此仅供用于学习交流,切勿用于商业用途,转载请注明http://www.cnblogs.com/mxbs/p/6213404.html. 利用VS2010创建一个单文档标准MFC工程,工程名为Dr ...
- mfc+vtk
MFC中view类主要处理显示视图,doc类处理文档,mainframe主要为整个窗口的和工程的设置管理.由此,VTK与MFC联合编程时,需要主要的是数据操作,以及显示要很好的与MFC中的结构结合,做 ...
- 共享MFC dULL
>------ 已启动生成: 项目: OSGtest, 配置: Debug Win32 ------1>正在编译...1>AddScene.cpp1>main.cpp1> ...
随机推荐
- Spring学习笔记--使用注解装配
使用@Autowired注解 从Spring2.5开始,最有趣的一种装配Spring Bean的方式是使用注解自动装配Bean的属性.Spring默认禁用注解装配,最简单的启用方式是使用Spring的 ...
- 83、android的消息处理机制(图+源码分析)——Looper,Handler,Message
转载:http://www.cnblogs.com/codingmyworld/archive/2011/09/12/2174255.html https://my.oschina.net/u/139 ...
- phpcms 列表页中调用其下的所有子栏目(或特定的子栏目)的方法
phpcms 列表页中,如何调用其下的所有子栏目(或特定的子栏目),具体的写法如下,感兴趣的朋友可以参考下,希望对大家有所帮助 代码如下: {pc:get sql="select * fro ...
- Hibernate传递list参数的例子
public Map<String, String> getAllFeedBack(Object[] obj){ Map<String, String> map = new H ...
- 使用jquery-qrcode生成二维码(转载)
一.使用jquery-qrcode生成二维码 先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcod ...
- 基于spring的shiro配置
shiro是一个特别简单,易用的框架,在此记录一下shiro的使用配置. 首先,创建四张表:user role user_role permission,分别为用户.角色.用户与角色关系表和权限 ...
- fidder教程
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大 ...
- HDU_5514_Frogs
Frogs Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- Design and Architectural Goals
w动态实例化-轻量级,组件间依赖程度.专一性-复用性.灵活性. https://www.codeigniter.com/userguide3/overview/goals.html http://co ...
- nodejs(二)
nodejs第二章节 回调函数 Node.js 异步编程的直接体现就是回调 异步编程依托于回调来实现 例子1:http服务器回调 var http = require(“http”);//引入一个ht ...