VC操作excel(读写操作)
1 安装有office2007以上版本的excel
2.向项目工程中添加基本的7个类(Excel作为OLE/COM库插件,定义好了各类交互的接口,这些接口是跨语言的接口。VC可以通过导入这些接口,并通过接口来对Excel的操作),由于本文只关心对Excel表格中的数据的读取,主要关注7个接_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range、Font0。
VS2012导入OLE/COM组件的接口的步骤为:项目->类向导->添加类->类型库中的MFC类(TypeLib中的MFC类),先选择要导入的组件所在的路径,即Excel.exe所在的路径,然后再选择要导入的Excel类型库中的接口。组件路径一般为C:\Program Files\Microsoft Office\Office15\EXCEL.exe;格式类似。
导入后会在项目中自动导入相关类,使用时需要添加其头文件,主要的头文件有:
#include "CApplication.h"
#include "CWorkbook.h"
#include "CWorkbooks.h"
#include "CWorksheet.h"
#include "CWorksheets.h"
#include "CRange.h"
#include "CFont0.h"
3. 导入之后需要“#import "C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE" no_namespace”注释掉,然后添加头文件:#include <afxdisp.h>到上面7个文件中去。
4.如果有错误error C2059双击error C2059,将VARIANT DialogBox()改成VARIANT _DialogBox() 再次编译,通过!!
void CMFCApplicationWriteExcelDlg::OnBnClickedButton3()
{/*1 安装有office2007以上版本的excel 2.向项目工程中添加基本的7个类(Excel作为OLE/COM库插件,定义好了各类交互的接口,这些接口是跨语言的接口。VC可以通过导入这些接口,并通过接口来对Excel的操作),由于本文只关心对Excel表格中的数据的读取,主要关注7个接_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range、Font0。VS2012导入OLE/COM组件的接口的步骤为:项目->类向导->添加类->类型库中的MFC类(TypeLib中的MFC类),先选择要导入的组件所在的路径,即Excel.exe所在的路径,然后再选择要导入的Excel类型库中的接口。组件路径一般为C:\Program Files\Microsoft Office\Office15\EXCEL.exe;格式类似。导入后会在项目中自动导入相关类,使用时需要添加其头文件,主要的头文件有:#include "CApplication.h"#include "CWorkbook.h"#include "CWorkbooks.h"#include "CWorksheet.h"#include "CWorksheets.h"#include "CRange.h"#include "CFont0.h"3. 导入之后需要“#import "C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE" no_namespace”注释掉,然后添加头文件:#include <afxdisp.h>到上面7个文件中去。4.如果有错误error C2059双击error C2059,将VARIANT DialogBox()改成VARIANT _DialogBox()再次编译,通过!!*///默认使用第一个sheetint nSheetNumber=1;//创建对象CApplication app;if( !app.CreateDispatch(_T("Excel.Application"))){AfxMessageBox("没有安装office2007以上版本,无法操作excel文件");return ;}//定义其他内部对象CWorkbooks books;CWorkbook book;CWorksheets sheets;CWorksheet sheet;CFont0 font;CRange range;CString FieldName,FieldValue;COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR); books=app.get_Workbooks();//需要在c盘建立一个excel文件,也可以改成系统自带的excel文件// book=books.Add(COleVariant("c:\\aa.xlsx"));book = books.Add(covOptional); book.put_Title("Mybooks");sheets=book.get_Sheets(); sheet=sheets.get_Item(COleVariant((short)nSheetNumber));sheet.put_Name("wxpSheet");//---------------------app.put_Visible(TRUE);//可见性app.put_UserControl(TRUE);//只读 //设置标题FieldName="a1";FieldValue="数据A";range=sheet.get_Range(COleVariant(FieldName),COleVariant(FieldName));range.put_Value2(COleVariant(FieldValue));FieldName="B1";FieldValue="数据B";range=sheet.get_Range(COleVariant(FieldName),COleVariant(FieldName));range.put_Value2(COleVariant(FieldValue));//填充数据-------------------------------------------------------for(int row=1;row<10;++row){//每一行的数据 for(int col=0;col<10;++col){//放置自己的指定数据------------------------------FieldName.Format("%c%d",'a'+col,(row+1));FieldValue.Format("(%d,%d)",row+1,col+1); range=sheet.get_Range(COleVariant(FieldName),COleVariant(FieldName));// range.put_Value2(COleVariant(FieldValue));range.put_Formula(_variant_t("=RAND()*100"));range.put_NumberFormat(_variant_t("00.00")); //设置隔行颜色if(row %2==0){ font=range.get_Font();font.put_Bold(COleVariant((short)TRUE));font.put_Color(COleVariant((long)RGB(255, 0, 0))); // font.put_Name(COleVariant(_T("黑体"))); }}//end of col}//end of row//设计计算公式,所有excel中的公式都可以使用-------------------------FieldName="a11";range=sheet.get_Range(COleVariant(FieldName),COleVariant(FieldName));range.put_Formula(COleVariant(_T("=sum(a2:a10")));//自适应列宽度--------------------------------CRange cols;cols=range.get_EntireColumn();cols.AutoFit();//::Sleep(5000);//读取内容-----------------------------------------------------FieldName="a11";range = sheet.get_Range(COleVariant(FieldName),COleVariant(FieldName));COleVariant cov = range.get_Value2();CString str="success";cov.ChangeType(VT_BSTR);str=cov.bstrVal; AfxMessageBox(str);//------------------------------------------------------------------//关闭excel文件,根据需要自行决定books.Close();app.Quit();books.ReleaseDispatch();app.ReleaseDispatch();}
VC操作excel(读写操作)相关推荐
- VS2010 对Excel读写操作
VS2010对Excel读写操作 一.开发环境 编程环境 VS2010 office版本 office 2010 注意 :这里office版本号不一定非得和vs版本号一致. 二.基本实现功能 基本实现 ...
- 实现EasyExcel对Excel读写操作
实现EasyExcel对Excel读写操作 .pom中引入xml相关依赖 <dependencies><!-- https://mvnrepository.com/artifact/ ...
- php excel读写,phpGrace 工具类库 - excel 读写操作
功能说明 excel 读写操作基于 PHPExecl 类库,可以方便的对 Excel 进行操作. 部署说明下载 PHPExcel.zip 解压后将全部文件部署到 phpGrace/tools 下 调用 ...
- VS2015 对Excel读写操作
一.开发环境 编程环境 VS2015 office版本 office 2016 二.参考博文 VS2010 对Excel读写操作 https://blog.csdn.net/ywx123_/artic ...
- VS2010 对Excel读写操作
https://blog.csdn.net/ywx123_/article/details/77074038 VS2010对Excel读写操作 一.开发环境 编程环境 VS2010 office版本 ...
- python中xlrd写操作_Python读写操作Excel模块_xlrd_xlwt_xlutils
Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...
- 基于Python的Excel读写操作--内容超详细,值得排排坐
今日份超详细的解读,Excel文件基础操作,让你以学就会. 写这个的原因是,一位群友问了很久,然后网上的教程写的又不是很详细,看的有些犯迷糊,所以我今日份写一份超详细的基本操作,让你打下良好的基础. ...
- python xlrd使用_python使用xlrd 操作Excel读写
原博文 2016-07-12 15:00 − 此文章非本人 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了pyt ...
- Python操作 Excel 基础操作
Python操作 Excel 安装 读取 Excel pip install xlrd read 写入Excel pip install xlwt write 补充会用到的excel表 读取 Exce ...
- 【开发指南】Spring Cloud集成POI完成Excel读写操作
POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft office格式档案读和写的功能,其中包括Excel,Word,Power ...
最新文章
- jsp中jsp中群发邮件群发邮件
- 英语 语义分割_Padlex数据处理-语义分割-分段变换,PaddleX,segtransforms
- concurrenthashmap是什么锁_多线程为什么要用ConcurrentHashMap
- 阿里redis规范(转自别人的公众号)
- redis持久化策略梳理及主从环境下的策略调整记录
- 【超全解析】原码、反码、补码、移码的相互转化和解读(取值范围)
- 怎么用汇编语言转换c语言程序设计,C语言是如何转换成汇编语言的6个步骤带你解析...
- python数据格式化后导入数据库_如何为数据库导入重新格式化这个json?
- 四步奠定SDN部署基石
- Python内置函数sorted()高级排序用法
- 过滤HTML标记、HTML注释、“!@#¥%”等非法字符
- 对称加密算法和非对称加密算法介绍
- MySQL 大数据量分页性能优化
- WEBPACK+ES6+REACT入门(6/7)-使用this.setState修改state上的数据
- QT Designer 设计主窗口时如何更改工具栏默认顺序
- JavaScript,实现这样的情景:阅读协议,阅读完毕后就可以点击同意复选框。
- selenium web录制(selenium_ide-2.9.1-fx.xpi和老版本火狐浏览器在最下方)
- N的阶乘递归与非递归
- 软件实用小技巧,大大提高学习、办公效率
- 吾爱破解python处理wps文件_太赞了!用Python实现WPS会员功能