明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: unionsoft

[原创]在VC中彻底玩转Excel

  [复制链接]
发表于 2004-10-6 17:34:00 | 显示全部楼层
支持原创!!!
发表于 2004-10-31 15:55:00 | 显示全部楼层
在vc中怎样添加excel的sheet呢?请教。
发表于 2004-11-14 20:34:00 | 显示全部楼层
高手。厉害


我也要象你一样厉害




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2004-12-10 11:30:00 | 显示全部楼层
请问各位高手,从哪里得到Excel.cpp Excel.h?
 楼主| 发表于 2004-12-13 12:36:00 | 显示全部楼层
zhmary发表于2004-12-10 11:30:00请问各位高手,从哪里得到Excel.cp...

Excel.cpp和Excel.h是从Excel的类型库中获取的,类型库类似C++中的头文件,包括接口,方法,属性的定义;类型库在Excel的安装目录可以找到,Excel的版本不同,这个类型库也不一样,如下所示: Excel 95 and prior : xl5en32.olb
Excel 97 : excel8.olb
Excel 2000 : excel9.olb
Excel 2002 : excel.exe 具体的获取方法: 1 . 使用VC++新建立一个基于MFC的EXE工程 2 . 点击菜单"查看"-->"建立类向导",此时会弹全"MFC ClassWizard"对话框 3 . 点击"Add Class"-->"From a type libray",指定Excel的type libray,在Excel的安装目录下可以找到,如:"D:\Microsoft Office\Office\EXCEL9.OLB" 4 . 在弹出的对话框中选择所需的类,按"确定",Excel.cpp和Excel.h就产生了。
发表于 2004-12-23 17:41:00 | 显示全部楼层
lpDisp = books.Open("C:\\1.xls",
covOptional, covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional );


编译显示错误: error C2660: 'Open' : function does not take 13 parameters
发表于 2005-4-6 08:48:00 | 显示全部楼层
请问怎样才能增加一个工作表?
发表于 2005-4-6 15:50:00 | 显示全部楼层
Workbooks.AttachDispatch(ExcelApp.GetWorkbooks());
Workbook.AttachDispatch(Workbooks.Open(FileName,covOptional, covOptional,covOptional, covOptional,covOptional, covOptional,covOptional, covOptional,covOptional, covOptional,covOptional, covOptional));
Worksheets.AttachDispatch(Workbook.GetWorksheets());
Worksheet.AttachDispatch(Worksheets.GetItem((COleVariant((long)1)))); Range.AttachDispatch(Worksheet.GetCells());
iCell.AttachDispatch(Range.GetItem(COleVariant((long)2),COleVariant((long)2)).pdispVal); vResult = iCell.GetMergeCells(); if(vResult.boolVal == -1)
{
AfxMessageBox("Yes");

Range.AttachDispatch(iCell.GetRows());
long row_num = Range.GetCount(); Range.AttachDispatch(iCell.GetColumns());
long col_num = Range.GetCount(); CString str;
str.Format("%d×%d",row_num,col_num);
AfxMessageBox(str);
}
请教:为什么str得到的结果都是1×1?(求合并单元格的原始行数和列数)。 谢谢。。。。。。。。。。
 楼主| 发表于 2005-4-9 10:13:00 | 显示全部楼层
首先你的Cells(2,2)是否处于合并单元格中


其次,你缺少了个关键语句:iCell.GetMergeArea()),你可以参考下面的语句


Range UnionRange;


UnionRange.AttachDispatch(iCell.GetMergeArea());         //先要获取合并区域


range.AttachDispatch (UnionRange.GetRows ());


long iRowNum = range.GetCount();                                                                                                 //合并单元格行数


range.AttachDispatch (UnionRange.GetColumns ());


long iColNum = Range.GetCount();                                                                                         //合并单元格列数
发表于 2005-5-14 14:23:00 | 显示全部楼层
看后茅塞顿开啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-23 10:40 , Processed in 0.183300 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表