MFC创建新Excel文档并设置其中的格式和字体+底纹(OLE/COM)
原文链接:http://blog.sina.com.cn/s/blog_71265dc90101b523.html
生成Excel.obl对象类excel.h
创建对象
- Range m_ExlRge;
- _Worksheet m_ExlSheet;
- Worksheets m_ExlSheets;
- _Workbook m_ExlBook;
- Workbooks m_ExlBooks;
- _Application m_ExlApp;
编写Excel代码
- //用m_ExlApp对象创建Excel2003进程
- if(!m_ExlApp.CreateDispatch("Excel.Application",NULL))
- {
- AfxMessageBox("创建Excel服务失败!");
- return;
- }
- //设置为可见
- m_ExlApp.SetVisible(TRUE);
- ///下面得到应用程序所在的路径///
- CString theAppPath,theAppName;
- char Path[MAX_PATH];
- GetModuleFileName(NULL,Path,MAX_PATH);//得到应用程序的全路径
- theAppPath=(CString)Path;
- theAppName=AfxGetApp()->m_pszAppName;
- theAppName+=".exe";
- //把最后的文件名去掉
- int length1,length2;
- length1=theAppPath.GetLength();
- length2=theAppName.GetLength();
- theAppPath.Delete(length1-length2,length2);
- CString TempPath="";
- TempPath=theAppPath+"Template.xls";//EXCEL模板的路径
- m_ExlBooks.AttachDispatch(m_ExlApp.GetWorkbooks(),TRUE);
- m_ExlBook.AttachDispatch(m_ExlBooks.Add((_variant_t)TempPath),TRUE);//加载EXCEL模板
- m_ExlSheets.AttachDispatch(m_ExlBook.GetSheets(),TRUE);//加载Sheet页面
- //添加新的Sheet页面
- m_ExlSheets.Add(vtMissing,vtMissing,_variant_t((long)1),vtMissing);
- //删除第二个Sheet页面
- m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)2)),TRUE);
- m_ExlSheet.Delete();
- //把第一个Sheet页面的名字改变为TestSheet
- m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)1)),TRUE);
- m_ExlSheet.SetName("TestSheet");
- ///合并第一行单元格A1至D1//
- //加载要合并的单元格
- m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A1"),_variant_t("D1")),TRUE);
- m_ExlRge.Merge(_variant_t((long)0));
- 设置表格内容
- m_ExlRge.AttachDispatch(m_ExlSheet.GetCells(),TRUE);//加载所有单元格
- m_ExlRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("数学系研究生课程统计"));
- m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)1),_variant_t("课程名"));
- m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)2),_variant_t("课时"));
- m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)3),_variant_t("难度"));
- m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)4),_variant_t("教学方式"));
- m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)1),_variant_t("泛函分析"));
- m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)2),_variant_t("60"));
- m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)3),_variant_t("普通"));
- m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)4),_variant_t("老师讲课"));
- m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)1),_variant_t("微分流形"));
- m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)2),_variant_t("40"));
- m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)3),_variant_t("变态难"));
- m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)4),_variant_t("自学"));
- m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)1),_variant_t("二阶椭圆型方程与方程组"));
- m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)2),_variant_t("60"));
- m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)3),_variant_t("很难"));
- m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)4),_variant_t("讨论"));
- m_ExlRge.AttachDispatch(m_ExlSheet.GetUsedRange());//加载已使用的单元格
- m_ExlRge.SetWrapText(_variant_t((long)1));//设置单元格内的文本为自动换行
- //设置齐方式为水平垂直居中
- //水平对齐:默认=1,居中=-4108,左=-4131,右=-4152
- //垂直对齐:默认=2,居中=-4108,左=-4160,右=-4107
- m_ExlRge.SetHorizontalAlignment(_variant_t((long)-4108));
- m_ExlRge.SetVerticalAlignment(_variant_t((long)-4108));
- ///设置整体的字体、字号及颜色//
- Font ft;
- ft.AttachDispatch(m_ExlRge.GetFont());
- ft.SetName(_variant_t("宋体"));//字体
- ft.SetColorIndex(_variant_t((long)11));//字的颜色
- ft.SetSize(_variant_t((long)12));//字号
- ///设置标题字体及颜色//
- m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A1"),_variant_t("D1")));
- ft.AttachDispatch(m_ExlRge.GetFont());
- ft.SetBold(_variant_t((long)1));//粗体
- ft.SetSize(_variant_t((long)13));
- ft.SetColorIndex(_variant_t((long)2));
- CellFormat cf;
- cf.AttachDispatch(m_ExlRge.GetCells());
- //设置底色/
- Interior it;
- it.AttachDispatch(m_ExlRge.GetInterior());
- it.SetColorIndex(_variant_t((long)11));//标题底色
- 表格内容的底色
- m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A2"),_variant_t("D5")));
- it.AttachDispatch(m_ExlRge.GetInterior());
- it.SetColorIndex(_variant_t((long)15));
- //为表格设置边框/
- Range UnitRge;
- CString CellName;
- for(int i=1;i<=4;i++)
- {
- for(int j=1;j<=4;j++)
- {
- CellName.Format("%c%d",j+64,i);//单元格的名称
- UnitRge.AttachDispatch(m_ExlRge.GetRange(_variant_t(CellName),_variant_t(CellName)));//加载单元格
- //LineStyle=线型 Weight=线宽 ColorIndex=线的颜色(-4105为自动)
- UnitRge.BorderAround(_variant_t((long)1),_variant_t((long)2),_variant_t((long)-4105),vtMissing);//设置边框
- }
- }
- //释放对象(相当重要!)
- m_ExlRge.ReleaseDispatch();
- m_ExlSheet.ReleaseDispatch();
- m_ExlSheets.ReleaseDispatch();
- m_ExlBook.ReleaseDispatch();
- m_ExlBooks.ReleaseDispatch();
- //m_ExlApp一定要释放,否则程序结束后还会有一个Excel进程驻留在内存中,而且程序重复运行的时候会出错
- m_ExlApp.ReleaseDispatch();
- //退出程序 m_ExlApp.Quit();
MFC创建新Excel文档并设置其中的格式和字体+底纹(OLE/COM)相关推荐
- MFC创建新Excel文档并设置其中的格式和字体
MFC创建新Excel文档并设置其中的格式和字体 转载 生成Excel.obl对象类excel.h 创建对象 [cpp] view plaincopyprint? Range m_ExlRge; ...
- 使用MFC自动化操作Excel文档
使用MFC自动化操作Excel文档 项目中要用到MFC操作Excel文件,在网上搜的结果,有把Excel当数据库处理的,也有直接操作Excel的,最终在MSDN上看到的结果,测试后觉得好用些. 使用基 ...
- 在Qt中使用已有模板创建新Word文档
简 在这篇帖子中我将详细讲述如何在Qt环境下使用已有Word模板文件创建新的文档,并对模板文档内容填充.目前,我只对替换文字和对表格进行操作进行了介绍,如何在文档插入图片未在本文中提及. 述 开发环境 ...
- Excel文档安全性设置
1.防止其他用户在表格乱录入 2.限定只能填固定词 3.工作表保护:限制用户删除数据或者删除表中部分数据 3.1全部保护 步骤:直接在审阅选项卡中点击保护工作簿即可(可设置密码) 3.2部分保护 步骤 ...
- 你的 OneDrive 帐户存在问题,它阻止你创建新的文档。请转到 OneDrive 了解详细信息。
这是我最近碰到的一个小问题,我的电脑自带的办公软件无法新建文件,说我的oneDrive账号存在问题,经过一段时间,解决了这个问题. 你想通过电脑访问oneDrive的官网,很难弄,一直进不去. 方法很 ...
- Office Open XML学习(1)-创建excel文档,并向单元格中插入字符串
做企业级应用,跟office打交道是少不了的.这里的Office不仅仅局限于微软的Office,还有第三方的Open Office之类..Net传统的Office操作方法(比如OleDB,OWC之类) ...
- ASP.NET里创建Microsoft Word文档
原文发布时间为:2008-08-03 -- 来源于本人的百度文章 [由搬家工具导入] 本文是应在ASP.NET里创建Microsoft Word文档之需而写的.这篇文章演示了在ASP.NET里怎么创建 ...
- Java 实现数据库数据 导入 导出成Excel文档的功能
1.创建导入 导出工具类,写入其导入和导出方法 导出成外部文件: public static ResponseEntity<byte[]> emp2Excel(List<Emp> ...
- Jsp利用pageoffice实现在线excel文档的编辑并保存到服务器
利用pageoffice实现在线处理excel文档 上周开组会,发现理解错导师的意思了,老师当然希望我能自动的爬取那些信息,但是现在要的很急,希望以半自动的方式去得到这些数据存到数据库,所以这周一直在 ...
最新文章
- linux环境用pycharm开发,Linux中部开发环境(Pycharm)(示例代码)
- 攻防世界Reverse第三题python-trade
- 二十二、“此生无悔入华夏,来世还在种花家”(2021.7.1)
- Git环境搭建与基本使用方法 (转自http://blog.csdn.net/fireelement/article/details/9618363)
- xss 表单劫持(from通用明文记录)
- 基于 Workman 实现Web扫描登录
- CHM文件打开显示乱码的解决方法
- 为什么8位有符号数的范围为“-128 — +127”?(转载加补充)
- asp.net MVC使用 jsQR 扫描二维码
- 在实现视频播放器的步骤client(三)风行网络电影列表
- 信道估计---LS、MMSE、LMMSE准则
- 6取余11c语言,中国剩余定理“大衍求一术”手算方法及四个习题
- JAVA基础算法(6)----- 国际象棋 α 皇后问题
- 正态分布是离散分布还是连续分布_简单统计学|正态分布之连续数据的概率分布...
- java api微盘_新浪微盘的API Python版封装
- 软件使用:如何用Mac做热点。
- JavaWeb视频教程
- 断舍离:我彻底戒掉苹果、微软、Google、Facebook 和亚马逊之后?
- 用硅光电池测量白炽灯频闪
- Linux文件系统:minix文件系统二进制分析2