原文链接:http://blog.sina.com.cn/s/blog_71265dc90101b523.html

生成Excel.obl对象类excel.h

创建对象

[cpp] viewplaincopyprint?
  1. Range m_ExlRge;
  2. _Worksheet m_ExlSheet;
  3. Worksheets m_ExlSheets;
  4. _Workbook m_ExlBook;
  5. Workbooks m_ExlBooks;
  6. _Application m_ExlApp;

编写Excel代码

[cpp] viewplaincopyprint?
  1. //用m_ExlApp对象创建Excel2003进程
  2. if(!m_ExlApp.CreateDispatch("Excel.Application",NULL))
  3. {
  4. AfxMessageBox("创建Excel服务失败!");
  5. return;
  6. }
  7. //设置为可见
  8. m_ExlApp.SetVisible(TRUE);
  9. ///下面得到应用程序所在的路径///
  10. CString theAppPath,theAppName;
  11. char Path[MAX_PATH];
  12. GetModuleFileName(NULL,Path,MAX_PATH);//得到应用程序的全路径
  13. theAppPath=(CString)Path;
  14. theAppName=AfxGetApp()->m_pszAppName;
  15. theAppName+=".exe";
  16. //把最后的文件名去掉
  17. int length1,length2;
  18. length1=theAppPath.GetLength();
  19. length2=theAppName.GetLength();
  20. theAppPath.Delete(length1-length2,length2);
  21. CString TempPath="";
  22. TempPath=theAppPath+"Template.xls";//EXCEL模板的路径
  23. m_ExlBooks.AttachDispatch(m_ExlApp.GetWorkbooks(),TRUE);
  24. m_ExlBook.AttachDispatch(m_ExlBooks.Add((_variant_t)TempPath),TRUE);//加载EXCEL模板
  25. m_ExlSheets.AttachDispatch(m_ExlBook.GetSheets(),TRUE);//加载Sheet页面
  26. //添加新的Sheet页面
  27. m_ExlSheets.Add(vtMissing,vtMissing,_variant_t((long)1),vtMissing);
  28. //删除第二个Sheet页面
  29. m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)2)),TRUE);
  30. m_ExlSheet.Delete();
  31. //把第一个Sheet页面的名字改变为TestSheet
  32. m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)1)),TRUE);
  33. m_ExlSheet.SetName("TestSheet");
  34. ///合并第一行单元格A1至D1//
  35. //加载要合并的单元格
  36. m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A1"),_variant_t("D1")),TRUE);
  37. m_ExlRge.Merge(_variant_t((long)0));
  38. 设置表格内容
  39. m_ExlRge.AttachDispatch(m_ExlSheet.GetCells(),TRUE);//加载所有单元格
  40. m_ExlRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("数学系研究生课程统计"));
  41. m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)1),_variant_t("课程名"));
  42. m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)2),_variant_t("课时"));
  43. m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)3),_variant_t("难度"));
  44. m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)4),_variant_t("教学方式"));
  45. m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)1),_variant_t("泛函分析"));
  46. m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)2),_variant_t("60"));
  47. m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)3),_variant_t("普通"));
  48. m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)4),_variant_t("老师讲课"));
  49. m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)1),_variant_t("微分流形"));
  50. m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)2),_variant_t("40"));
  51. m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)3),_variant_t("变态难"));
  52. m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)4),_variant_t("自学"));
  53. m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)1),_variant_t("二阶椭圆型方程与方程组"));
  54. m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)2),_variant_t("60"));
  55. m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)3),_variant_t("很难"));
  56. m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)4),_variant_t("讨论"));
  57. m_ExlRge.AttachDispatch(m_ExlSheet.GetUsedRange());//加载已使用的单元格
  58. m_ExlRge.SetWrapText(_variant_t((long)1));//设置单元格内的文本为自动换行
  59. //设置齐方式为水平垂直居中
  60. //水平对齐:默认=1,居中=-4108,左=-4131,右=-4152
  61. //垂直对齐:默认=2,居中=-4108,左=-4160,右=-4107
  62. m_ExlRge.SetHorizontalAlignment(_variant_t((long)-4108));
  63. m_ExlRge.SetVerticalAlignment(_variant_t((long)-4108));
  64. ///设置整体的字体、字号及颜色//
  65. Font ft;
  66. ft.AttachDispatch(m_ExlRge.GetFont());
  67. ft.SetName(_variant_t("宋体"));//字体
  68. ft.SetColorIndex(_variant_t((long)11));//字的颜色
  69. ft.SetSize(_variant_t((long)12));//字号
  70. ///设置标题字体及颜色//
  71. m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A1"),_variant_t("D1")));
  72. ft.AttachDispatch(m_ExlRge.GetFont());
  73. ft.SetBold(_variant_t((long)1));//粗体
  74. ft.SetSize(_variant_t((long)13));
  75. ft.SetColorIndex(_variant_t((long)2));
  76. CellFormat cf;
  77. cf.AttachDispatch(m_ExlRge.GetCells());
  78. //设置底色/
  79. Interior it;
  80. it.AttachDispatch(m_ExlRge.GetInterior());
  81. it.SetColorIndex(_variant_t((long)11));//标题底色
  82. 表格内容的底色
  83. m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A2"),_variant_t("D5")));
  84. it.AttachDispatch(m_ExlRge.GetInterior());
  85. it.SetColorIndex(_variant_t((long)15));
  86. //为表格设置边框/
  87. Range UnitRge;
  88. CString CellName;
  89. for(int i=1;i<=4;i++)
  90. {
  91. for(int j=1;j<=4;j++)
  92. {
  93. CellName.Format("%c%d",j+64,i);//单元格的名称
  94. UnitRge.AttachDispatch(m_ExlRge.GetRange(_variant_t(CellName),_variant_t(CellName)));//加载单元格
  95. //LineStyle=线型 Weight=线宽 ColorIndex=线的颜色(-4105为自动)
  96. UnitRge.BorderAround(_variant_t((long)1),_variant_t((long)2),_variant_t((long)-4105),vtMissing);//设置边框
  97. }
  98. }
  99. //释放对象(相当重要!)
  100. m_ExlRge.ReleaseDispatch();
  101. m_ExlSheet.ReleaseDispatch();
  102. m_ExlSheets.ReleaseDispatch();
  103. m_ExlBook.ReleaseDispatch();
  104. m_ExlBooks.ReleaseDispatch();
  105. //m_ExlApp一定要释放,否则程序结束后还会有一个Excel进程驻留在内存中,而且程序重复运行的时候会出错
  106. m_ExlApp.ReleaseDispatch();
  107. //退出程序 m_ExlApp.Quit();

MFC创建新Excel文档并设置其中的格式和字体+底纹(OLE/COM)相关推荐

  1. MFC创建新Excel文档并设置其中的格式和字体

    MFC创建新Excel文档并设置其中的格式和字体 转载 生成Excel.obl对象类excel.h 创建对象 [cpp] view plaincopyprint? Range m_ExlRge;    ...

  2. 使用MFC自动化操作Excel文档

    使用MFC自动化操作Excel文档 项目中要用到MFC操作Excel文件,在网上搜的结果,有把Excel当数据库处理的,也有直接操作Excel的,最终在MSDN上看到的结果,测试后觉得好用些. 使用基 ...

  3. 在Qt中使用已有模板创建新Word文档

    简 在这篇帖子中我将详细讲述如何在Qt环境下使用已有Word模板文件创建新的文档,并对模板文档内容填充.目前,我只对替换文字和对表格进行操作进行了介绍,如何在文档插入图片未在本文中提及. 述 开发环境 ...

  4. Excel文档安全性设置

    1.防止其他用户在表格乱录入 2.限定只能填固定词 3.工作表保护:限制用户删除数据或者删除表中部分数据 3.1全部保护 步骤:直接在审阅选项卡中点击保护工作簿即可(可设置密码) 3.2部分保护 步骤 ...

  5. 你的 OneDrive 帐户存在问题,它阻止你创建新的文档。请转到 OneDrive 了解详细信息。

    这是我最近碰到的一个小问题,我的电脑自带的办公软件无法新建文件,说我的oneDrive账号存在问题,经过一段时间,解决了这个问题. 你想通过电脑访问oneDrive的官网,很难弄,一直进不去. 方法很 ...

  6. Office Open XML学习(1)-创建excel文档,并向单元格中插入字符串

    做企业级应用,跟office打交道是少不了的.这里的Office不仅仅局限于微软的Office,还有第三方的Open Office之类..Net传统的Office操作方法(比如OleDB,OWC之类) ...

  7. ASP.NET里创建Microsoft Word文档

    原文发布时间为:2008-08-03 -- 来源于本人的百度文章 [由搬家工具导入] 本文是应在ASP.NET里创建Microsoft Word文档之需而写的.这篇文章演示了在ASP.NET里怎么创建 ...

  8. Java 实现数据库数据 导入 导出成Excel文档的功能

    1.创建导入 导出工具类,写入其导入和导出方法 导出成外部文件: public static ResponseEntity<byte[]> emp2Excel(List<Emp> ...

  9. Jsp利用pageoffice实现在线excel文档的编辑并保存到服务器

    利用pageoffice实现在线处理excel文档 上周开组会,发现理解错导师的意思了,老师当然希望我能自动的爬取那些信息,但是现在要的很急,希望以半自动的方式去得到这些数据存到数据库,所以这周一直在 ...

最新文章

  1. linux环境用pycharm开发,Linux中部开发环境(Pycharm)(示例代码)
  2. 攻防世界Reverse第三题python-trade
  3. 二十二、“此生无悔入华夏,来世还在种花家”(2021.7.1)
  4. Git环境搭建与基本使用方法 (转自http://blog.csdn.net/fireelement/article/details/9618363)
  5. xss 表单劫持(from通用明文记录)
  6. 基于 Workman 实现Web扫描登录
  7. CHM文件打开显示乱码的解决方法
  8. 为什么8位有符号数的范围为“-128 — +127”?(转载加补充)
  9. asp.net MVC使用 jsQR 扫描二维码
  10. 在实现视频播放器的步骤client(三)风行网络电影列表
  11. 信道估计---LS、MMSE、LMMSE准则
  12. 6取余11c语言,中国剩余定理“大衍求一术”手算方法及四个习题
  13. JAVA基础算法(6)----- 国际象棋 α 皇后问题
  14. 正态分布是离散分布还是连续分布_简单统计学|正态分布之连续数据的概率分布...
  15. java api微盘_新浪微盘的API Python版封装
  16. 软件使用:如何用Mac做热点。
  17. JavaWeb视频教程
  18. 断舍离:我彻底戒掉苹果、微软、Google、Facebook 和亚马逊之后?
  19. 用硅光电池测量白炽灯频闪
  20. Linux文件系统:minix文件系统二进制分析2

热门文章

  1. 项目管理手记(22) ERP项目实施流程要向KFC学炸薯条
  2. 云端中间层负载均衡工具 Eureka
  3. 给刚工作不久的你:你可一定要加油加油加油加油撑住啊
  4. 羟基功能化ZnTe(碲化锌)量子点|氨基化HgS量子点|羧基修饰近红外HgSe量子点
  5. 时下流行devops关键词:分布式架构、一体化架构和微服务架构
  6. MP3 转换成wma怎么操作?
  7. 15 个边玩游戏边学编程的网站,从此学习编程不再枯燥
  8. 怎样解决苹果笔记本连接显示器显示不全的问题
  9. 大整数加法计算思路与算法实现
  10. Network-LSA