怎样读取excel里某个行列的值 ,急用!!1 兄弟我需要对一个excel文件里的某个行列的值,请高手指点一下,急用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Range对象VC++写入excel的简单介绍 首先先引入excel application的几个类通过菜单 View->ClassWizard->Add Class->From a type library 引入excel的olb文件,一般在office目录下,可能为excel8.olb,excel9.olb,xlen32.olb。导入类applicaton worksheets _worksheet workbooks _workbook在你的程序中先include该类文件的头文件。在序入口点添加:if(!AfxOleInit()){ AfxMessageBox("Could not initialize COM dll"); return FALSE;}//装载ole 在所要用到的dialog装载代码出添加:if(!app.CreateDispatch("Excel.Application")){ AfxMessageBox("Couldn't start Excel and get Application object."); return FALSE;}//装载excel对象 主代码: _Application app; COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); Workbooks books; _Workbook book; Worksheets sheets; _Worksheet sheet; Range range; Range cols; books = app.GetWorkbooks(); book = books.Add (covOptional); sheets =book.GetSheets(); sheet = sheets.GetItem(COleVariant((short)1)); //Fill cells A1, B1, C1, and D1 one cell at a time with "headers". range = sheet.GetRange(COleVariant("A1"),COleVariant("A1")); range.SetValue(COleVariant("First Name")); range = sheet.GetRange(COleVariant("B1"),COleVariant("B1")); range.SetValue(COleVariant("Last Name")); range = sheet.GetRange(COleVariant("C1"),COleVariant("C1")); range.SetValue(COleVariant("Full Name")); range = sheet.GetRange(COleVariant("D1"),COleVariant("D1")); range.SetValue(COleVariant("Salary")); //Format A1:D1 as bold, vertical alignment = center. range = sheet.GetRange(COleVariant("A1"), COleVariant("D1")); font = range.GetFont(); font.SetBold(covTrue); range.SetVerticalAlignment( COleVariant((short)xlVAlignCenter)); app.SetVisible(TRUE); app.SetUserControl(TRUE); 在office2003的excel对象中 没有_application _workbook _worksheet 代替的是application workbook worksheet http://www.vchelp.net/itbookreview/view_paper.asp?paper_id=770 http://www.vckbase.com/document/viewdoc.asp?id=421 方法很多啊,楼上兄弟们说的automation方法,用于调用excel内部操作,不过office automation偶觉得用VB比较方便,用VC的话,需要掌握的代码就有很多,而且资料很少。如果你使用automation,还查东西很难的话,有3样东西,一个是excel自带的用于VB自动化的帮助文件,是.chm的,原来office2k里面word对应的好像是VBAWRD9.chm,自己找找吧,另外是加入你的工程的那个tlb文件,可以用OLE View打开查看,导出来之后可以查找一些枚举变量的定义,因为在使用的时候经常会遇到用一些常量作为定义。另外就是你自己添加的类了,有这3样东西,虽然难点,但是操作excel也没什么问题。我个人推荐使用通常的数据库方式,无论使用ODBC方式带DSN还是用其他方法,都支持excel数据的读取,到时候当作普通数据库就行了。做dsn的话,.csv和.exl都没问题。 一直都用数据库的方式读,对automation方法知道的很少,谁知道这次的文件很怪异,是html文件以excel文件后缀名保存的,所以数据库方式总是打不开,automation方式按楼上的兄弟说的方式打来总是连接错误,最后只好解析html文本了。 http://www.vckbase.com/document/viewdoc/?id=693 请教:想开发播放器进度条,可拖拽,用什么控件适合呢? 问一个关于NAT地址转换表的问题 如何动态显示树形控件里的信息 GetBits()获得图像数据 是一个怎么的结构? ocx中的界面怎么实现xp风格? 如何修改分割视图的窗口ID? 这样为什么不能修改注册表? 怎样设置CEdit的字体? 请教:频繁做open()会使数据库崩溃吗? 100分求助一个界面 代码合并问题. 串口通信问题
VC++写入excel的简单介绍
首先先引入excel application的几个类
通过菜单 View->ClassWizard->Add Class->From a type library 引入excel的olb文件,一般在office目录下,可能为excel8.olb,excel9.olb,xlen32.olb。导入类applicaton worksheets _worksheet workbooks _workbook在你的程序中先include该类文件的头文件。
在序入口点添加:
if(!AfxOleInit()){
AfxMessageBox("Could not initialize COM dll");
return FALSE;
}//装载ole
在所要用到的dialog装载代码出添加:
if(!app.CreateDispatch("Excel.Application")){
AfxMessageBox("Couldn't start Excel and get Application object.");
return FALSE;
}//装载excel对象
主代码:
_Application app;
COleVariant
covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
Workbooks books;
_Workbook book;
Worksheets sheets;
_Worksheet sheet;
Range range;
Range cols;
books = app.GetWorkbooks();
book = books.Add (covOptional);
sheets =book.GetSheets();
sheet = sheets.GetItem(COleVariant((short)1));
//Fill cells A1, B1, C1, and D1 one cell at a time with "headers".
range = sheet.GetRange(COleVariant("A1"),COleVariant("A1"));
range.SetValue(COleVariant("First Name"));
range = sheet.GetRange(COleVariant("B1"),COleVariant("B1"));
range.SetValue(COleVariant("Last Name"));
range = sheet.GetRange(COleVariant("C1"),COleVariant("C1"));
range.SetValue(COleVariant("Full Name"));
range = sheet.GetRange(COleVariant("D1"),COleVariant("D1"));
range.SetValue(COleVariant("Salary"));
//Format A1:D1 as bold, vertical alignment = center.
range = sheet.GetRange(COleVariant("A1"), COleVariant("D1"));
font = range.GetFont();
font.SetBold(covTrue);
range.SetVerticalAlignment(
COleVariant((short)xlVAlignCenter));
app.SetVisible(TRUE);
app.SetUserControl(TRUE);
在office2003的excel对象中 没有_application _workbook _worksheet 代替的是application workbook worksheet
如果你使用automation,还查东西很难的话,有3样东西,一个是excel自带的用于VB自动化的帮助文件,是.chm的,原来office2k里面word对应的好像是VBAWRD9.chm,自己找找吧,另外是加入你的工程的那个tlb文件,可以用OLE View打开查看,导出来之后可以查找一些枚举变量的定义,因为在使用的时候经常会遇到用一些常量作为定义。
另外就是你自己添加的类了,有这3样东西,虽然难点,但是操作excel也没什么问题。我个人推荐使用通常的数据库方式,无论使用ODBC方式带DSN还是用其他方法,都支持excel数据的读取,到时候当作普通数据库就行了。做dsn的话,.csv和.exl都没问题。