VC++操作EXCEL
来源:互联网 发布:软件编程学校招生 编辑:程序博客网 时间:2024/06/06 12:34
一、新建EXCEL表
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
app.CreateDispatch("EXCEL.Application");
app.SetVisible(false); //设置表可见性
app.SetDisplayFullScreen(false); //设置不全屏显示
app.SetDisplayAlerts(false); //屏蔽警告
二、打开EXCEL表
char path[MAX_PATH];
GetCurrentDirectory(MAX_PATH,path); //获取当前目录
CString strPath = path;
strPath += "\\计算结果";
books.AttachDispatch(app.GetWorkbooks(),true);
book.AttachDispatch(books.Add(_variant_t(strPath)));
三、获取工作表
sheets = book.GetWorksheets();
sheet = sheets.GetItem(COleVariant((short)1));
四、新建工作表
sheets = book.GetWorksheets();
sheets.Add(vtMissing,vtMissing,_variant_t((long)5[u1] ),vtMissing);
五、选择工作表某个区域
1、range = sheet.GetRange(COleVariant("A1"),COleVariant("A1"));
2、range.AttachDispatch(sheet.GetRange(_variant_t("K39"),_variant_t("K39")),TRUE);
六、合并单元格
range = sheet.GetRange(COleVariant("A1"),COleVariant("A1")); //先选择区域
range.Merge(_variant_t((long)0)); //再合并
七、设置单元格内容
1、单个单元格赋值
range = sheet.GetRange(COleVariant("A1"),COleVariant("A1")); //先选择区域
range.SetValue2(COleVariant("××")); //再赋值
2、批量赋值
CString sCell; //定义字符串变量
for(int i=0; i<360; i++)
{
sCell.Format("A%d",i+2); //选择单元格
range = sheet.GetRange(COleVariant(sCell[u2] ),COleVariant(sCell[u3] ));
range.SetValue2(COleVariant((short)(1.5*i))); //再赋值
}
八、设定单元格字体,对齐方式,颜色,粗体,斜体,背景色,列宽,行高
Font ft; //定义字体变量
Interior it; //定义背景色变量
range = sheet.GetRange(COleVariant("A1"),COleVariant("A1")); //先选择区域
range.SetHorizontalAlignment(_variant_t((long)-4131)); //水平居中对齐
range.SetVerticalAlignment(_variant_t((long)-4108)); //竖直居中对齐
range.SetColumnWidth(COleVariant("20")); //列宽
range.SetRowHeight(COleVariant("25")); //行高
ft.AttachDispatch(range.GetFont()); //匹配
ft.SetBold(_variant_t((long)0)); //设置粗体,0-不加粗;1-加粗
ft.SetItalic(_variant_t((long)0)); //设置斜体,0-不斜;1-斜
ft.SetSize(_variant_t((long)11)); //字大小
ft.SetColorIndex(_variant_t((long)5)); //字颜色
it.AttachDispatch(range.GetInterior());
it.SetColorIndex(_variant_t((long)8)); //背景色
说明:
对齐方式:(水平)居中:-4108 靠左:-4131 靠右:-4152
(竖直)居中:-4108 靠上:-4160 靠下:-4107
线颜色值:1-黑;2-白;3-红;5蓝;6黄;7-粉红;8-浅蓝;9-灰;10-绿;
九、获取单元格数据
COleVariant rValue,gValue; //定义COleVariant变量
CString quzhi; //定义字符串变量
range = sheet.GetRange(COleVariant("A1"),COleVariant("A1"));
rValue=COleVariant(range.GetValue(gValue)); //取得单元格数据
rValue.ChangeType(VT_BSTR); //数据转换格式
quzhi=rValue.bstrVal; //将单元格数据赋在字符串变量中
十、绘单元格边框
Range rg ; //定义变量
1、绘横线
CString strCell1strCell2,strCell3;
for (i=5;i<21;i++)
{
strCell1.Format("I%d",i*2);
strCell2.Format("K%d",i*2);
rg.AttachDispatch(sheet.GetRange(COleVariant(strCell1),
COleVariant(strCell2)),true);
rg.BorderAround(_variant_t((long)1),_variant_t((long)2),
_variant_t((long)1),vtMissing);
//线型 // 线宽 //颜色
}
2、绘竖线
for(i=0;i<20;i++)
{
strCell1.Format("%c12",(char)('I'+i));
strCell2.Format("%c40",(char)('I'+i));
rg.AttachDispatch(sheet.GetRange(COleVariant(strCell1)
,COleVariant(strCell2)),true);
rg.BorderAround(_variant_t((long)1),_variant_t((long)2),
_variant_t((long)3),vtMissing);
}
3、绘外框
strCell3=(CString)CHAR(i+74)+"40";
rg.AttachDispatch(sheet.GetRange(COleVariant("I10"),
COleVariant(strCell3)),TRUE);
rg.BorderAround(_variant_t((long)1),_variant_t((long)3),
_variant_t((long)5),vtMissing);
十一、保存结果
book.SaveAs(COleVariant(strPath),covOptional,
covOptional,covOptional,
covOptional,covOptional, (long)0,covOptional,covOptional,covOptional,
covOptional,covOptional);
十二、关闭表及释放变量
app.Quit();
sheet.ReleaseDispatch();
sheets.ReleaseDispatch();
book.ReleaseDispatch();
books.ReleaseDispatch();
app.ReleaseDispatch();
- VC操作EXCEL
- VC操作EXCEL(1)
- vc操作Excel(2)
- VC操作excel表格
- VC操作Excel
- vc操作Excel。
- VC操作Excel(总结)
- VC++操作Excel 2007
- vc对excel操作
- VC++ 操作excel 转
- VC操作EXCEL
- VC操作Excel
- VC++操作Excel对象
- VC对EXCEL操作
- VC操作EXCEL实例
- VC操作Excel文件
- VC操作excel表格
- VC操作Excel
- 代理模式Porxy -- 动态代理待续
- codeforces Round #237(div2) D解题报告
- UML 之用例视图
- 在ipad,iphon上使用FireBug调试
- Linux使用时候一些快捷技巧
- VC++操作EXCEL
- 点击屏幕,让UITextField关闭键盘+传值
- 黑马程序员_基于老毕视频和Java疯狂讲义1~2节基础概括(思维导图)
- bnuoj 20950 沉重的货物 (最小生成树)
- POJ 3304 判断线段相交(叉积)
- java中的引用类型概念
- 处理百万级以上的数据提高查询速度的方法
- python web框架 Django
- c函数之时间函数time\localtime\mktime