【关于MFC操作Excel表格的一些经验】
来源:互联网 发布:万维网官网域名 编辑:程序博客网 时间:2024/06/01 09:10
前段时间花个两个星期做了两个和excel表格有关的软件,所以在这里记录下一些经验:
操作excel表格主要两种方法:
第一个就是使用SpreadSheet类操作:
在前面加一个文件打开的函数;dlg。
fileName = dlg.GetPathName();//文件名
CSpreadSheet SS(fileName,"工作表名称");
SS.GetTotalRows(); //相应工作表横数(不认行只认最远)
SS.GetTontalRows();//最大列?
SS.ReadRow(Rows, i);
Rows.GetAt(j); //工作表名称的第i行第j列数据
第二个就是使用excel.exe中只带的类操作:
excel .exe中需要的类:
_Application
_Workbook
_Worksheet
Font//字体
Interior//背景色
Range
Workbooks
Worksheets
注意:
初始化函数中添加
::CoInitialize(NULL);//初始化
_Application app; //先创建一个_Application类,用_Application来创建一个Excel应用程序接口
Workbooks books; //工作薄集合
_Workbook book; //工作薄
Worksheets sheets; //工作表集合
_Worksheet sheet; //工作表
Range range; //单元格区域对象
Font font;//字体
Range cols;
//covOptional 可选参数的VARIANT类型
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
1、获取区域、
range = sheet.GetRange(COleVariant("A1"),COleVariant("A1"));
range.AttachDispatch(sheet.GetUsedRange());//当前区域
2、合并单元格:
range.SetHorizontalAlignment(COleVariant((short)3));//1合并靠右,2合并靠左,3合并居中
range.Merge(COleVariant((short)0));//不选择就没有合并
range.SetValue2(COleVariant("123"));
3、设置列宽
range.SetColumnWidth(COleVariant("18.75"));
range.SetRowHeight(COleVariant("22"));//行高
4、设置自动换行
range.SetWrapText(COleVariant((long)1));
5、顶端对齐
range.SetVerticalAlignment(COleVariant((short)-4160));
6、设置字体
range = sheet.GetRange(COleVariant("A3"),COleVariant("P3"));
font= range.GetFont();
font.AttachDispatch(range.GetFont());
font.SetName(COleVariant("宋体"));
font.SetSize(COleVariant((short)9));
font.SetBold(COleVariant((short)TRUE));//粗体
7、设置自动适应宽度
cols = range.GetEntireColumn();
cols.AutoFit();
8、设置为文本格式
range.SetNumberFormat(COleVariant("@"));
9、插入一个公式
//选择A2单元格,插入一个公式"=RAND()*100000",
range=sheet.GetRange(COleVariant("A2"),COleVariant("A2"));
range.SetFormula(COleVariant("=RAND()*100000"));
10、画边线
range.BorderAround(COleVariant((long)1),(long)2,(long)1,covOptional);//covOptional见最上
11、单元格背景颜色
Interior it; // 底色设置
range.AttachDispatch(sheet.GetRange(_variant_t("C3"), _variant_t("E6")),true);
it.AttachDispatch(range.GetInterior());
it.SetColorIndex(_variant_t((long)20)); // 底色设置为浅青色
注意:
1、本人在操作excel表格时,遇到一种类型是无法操作的,就是合并后的单元格。不管是自动换行、自动适应宽度等等,都无法操作。本人无法用vc搞定这个问题。
2、关于文本格式,有两种一种就是单纯的文本格式,还一种是左上角带三角形的文本格式,主要是因为SpreadSheet类有时候读取不了单纯的文本格式内容,只能读取带三角形的文本格式。这个问题通过“数据“菜单中的子菜单”分列“进行操作,先选择一列,再操作,本人无法用vc搞定这个问题。
一种解决办法:在excel表格中录制宏再操作excel表格,查看宏内容,宏是以VB语言写成,通过这个可以找到用vc操作excel的方法。
- 【关于MFC操作Excel表格的一些经验】
- 关于MFC的一些经验。
- 关于表格的一些操作
- MFC对EXCEL的一些基本操作
- mysql关于表格的一些基本操作
- 关于数据库操作整理的一些经验
- python处理excel表格的一些基本操作(1)
- 一些关于操作excel的 library
- 关于省市区excel表格通过mongodb转成json的操作
- excel表格数据的操作
- 关于MFC中读取EXCEL文件的操作
- 关于EXCEL操作一些方法!
- EXCEL的一些操作
- 关于vc操作Excel表格后出现Excel.exe进程不能关闭的问题
- MFC - EXCEL表格
- PS的一些操作经验
- 关于Java(jxl)操作Excel一些设置的问题。。。。
- 关于BCB中,Excel的一些操作(存底)
- IOS NSPredicate 用于字符串匹配 可检验手机号、邮箱、时间戳等 MARK
- 应用跳转到AppStore指定关键字搜索界面
- 数据结构C++版第3章节笔记
- 矩阵键盘
- larbin的配置和使用
- 【关于MFC操作Excel表格的一些经验】
- Android - 文件读写操作 总结
- 开篇:回调
- cocos2d html5 互相推挤的精灵
- Linux下使用C++连接mysql的方法
- 页面往Struts框架的Action传值注意!
- DataDirectory结构体数组
- 第三章《链队列的验证实验》
- windows数据类型