VC操作Excel之基本操作 修改问题篇

本文介绍了如何在VS 2013中进行Excel读写操作,详细讲解了Excel的对象模型,包括_Application、Workbooks、_Workbook、Worksheets、_Worksheet和Range等类。通过实例代码展示如何创建Excel服务、打开工作簿、设置单元格内容、字体样式、颜色以及合并单元格等基本操作。同时,提到了在不同Office版本中可能遇到的函数名变化问题及其解决方案。
摘要由CSDN通过智能技术生成

今天做VS 2013读写EXCEL表格参考下文:

http://blog.csdn.net/sp_daiyq/article/details/6191233

   最近由于工作需要,不得不操作Excel,包括基本的数据输入输出、字体设置、颜色设置、单元格的合并、填充色的设置,当然还包括图表的生成以及渐近线的操作等。折腾了许久,项目终于完成了^_^。现在将学习操作Excel的点点滴滴记录下来和大家一同分享,也作为自己的一次总结。

      1、Excel的对象模型(有人称其为层次结构)

      打开一个Excel工作表,点击“工具”->“宏”->“Visual Basic 编辑器”选项打开VB的编辑器,打开帮助文档,里面“Microsoft Excel Visual Basic 参考”下的“Microsoft Excel 对象模型”展示了完整的Excel的层次结构,是不是有点类似于MFC的继承图表啊?利用帮助文档我们可以找到一些需要的知识,下面介绍一些类:

      _Application:表示整个的Excel应用程序,包含一个工作簿集合

      Workbooks:工作簿集合,包含N个工作簿(Workbook)

      _Workbook:工作簿,包含一个工作表(sheets)集合

      Worksheets:工作表集合,包含N个工作表

      _Worksheet:工作表,也就是我们在Excel中看到的Sheet1、Sheet2、Sheet3,它是我们操作Excel的基本单位

      Range:这是单元格的集合,我们知道Excel是由一个个的单元格组成的,通过Range来操作单元格

      Font:用于设置单元格的字体、颜色、字号、粗体设置

      Interior:设置底色

      Boards:设置区域内所有单元格的边框,如果要设置一组区域的外边框的话用Rang->BorderAround设置

      下面用一个具体的例子来说明怎么通过MFC来操作Excel

      2、Excel库的插入

      在我们MFC的工程中,按Ctrl+W打开MFC类向导对话框,点击“Add Class...”->“From a type Library...”,找到你所使用的excel类型库,我使用的在目录C:/Program Files/Microsoft Office/OFFICE11下的“EXCEL.EXE”文件,查找时文件类型选“All Files”,然后添加我们所需要的类,通常以上列举的前6类是必须的,其它的需要时再添加。我不认为全部添加是一种好的做法,一个我觉得很乱,另外生成的excel.cpp文件会很大。我建议浏览一遍这些类,这样当你做些操作时可以更清楚的知道需要添加哪些类。添加完需要的类后,我们就可以来做一些基本的操作了。

      3、Com支持库的初始化

      通常在App的InitInstance()里面加入初始化和关闭COM库的操作,在DoModal()调用之前加入初始化的代码:

     

[cpp]  view plain copy
  1. if (CoInitialize(NULL) != 0)   
  2. {   
  3.     AfxMessageBox("初始化COM支持库失败!");   
  4.     exit(1);   
  5. }   

      在return之前加入CoUninitialize(); 关闭CON库。

      4、代码演示一些基本的操作

      首先别忘了包含头文件“excel.h”,若用到_variant_t()时,需要包含头文件“comdef.h”和“comutil.h”,否则会出现错误:

error C2065: '_variant_t' : undeclared identifier”。

      下面的代码包括了一些基本的操作:

[cpp]  view plain copy
  1.     // 变量的定义  
  2.     _Application app;  
  3.     Workbooks books;  
  4.     _Workbook book;  
  5.     Worksheets sheets;  
  6.     _Worksheet sheet;  
  7.     Range range;  
  8.     LPDISPATCH lpDisp;      
  9.     COleVariant vResult;  
  10.   
  11.     CString str = "";  
  12.       
  13.     COleVariant  
  14.         covTrue((short)TRUE),  
  15.         covFalse((short)FALSE),  
  16.         covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);  
  17.       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值