白菜乐园 发表于 2004-10-6 17:34:00

支持原创!!!

xysyr 发表于 2004-10-31 15:55:00

在vc中怎样添加excel的sheet呢?请教。

kingchen 发表于 2004-11-14 20:34:00

高手。厉害


我也要象你一样厉害




zhmary 发表于 2004-12-10 11:30:00

请问各位高手,从哪里得到Excel.cpp Excel.h?

unionsoft 发表于 2004-12-13 12:36:00

zhmary发表于2004-12-10 11:30:00static/image/common/back.gif请问各位高手,从哪里得到Excel.cp...


<BR>Excel.cpp和Excel.h是从Excel的类型库中获取的,类型库类似C++中的头文件,包括接口,方法,属性的定义;类型库在Excel的安装目录可以找到,Excel的版本不同,这个类型库也不一样,如下所示:


Excel 95 and prior               :               xl5en32.olb<BR>        Excel 97                                                                                               :               excel8.olb<BR>        Excel 2000                                                                               :               excel9.olb<BR>        Excel 2002                                                                               :               excel.exe


具体的获取方法:


1 . 使用VC++新建立一个基于MFC的EXE工程


2 . 点击菜单"查看"--&gt;"建立类向导",此时会弹全"MFC ClassWizard"对话框


3        . 点击"Add Class"--&gt;"From a type libray",指定Excel的type libray,在Excel的安装目录下可以找到,如:"D:\Microsoft Office\Office\EXCEL9.OLB"


4 . 在弹出的对话框中选择所需的类,按"确定",Excel.cpp和Excel.h就产生了。

yfy2003 发表于 2004-12-23 17:41:00

<FONT size=2>lpDisp        =        books.Open("C:\\1.xls",                                                <BR>                        covOptional,        covOptional,        covOptional,        covOptional,        covOptional,<BR>                        covOptional,        covOptional,        covOptional,        covOptional,        covOptional,<BR>                        covOptional,        covOptional        );                                </FONT><BR>



<BR>编译显示错误:


error C2660: 'Open' : function does not take 13 parameters

xux4618 发表于 2005-4-6 08:48:00

请问怎样才能增加一个工作表?

梦幻神话 发表于 2005-4-6 15:50:00

Workbooks.AttachDispatch(ExcelApp.GetWorkbooks()); <BR>        Workbook.AttachDispatch(Workbooks.Open(FileName,covOptional, covOptional,covOptional, covOptional,covOptional, covOptional,covOptional, covOptional,covOptional, covOptional,covOptional, covOptional));<BR>        Worksheets.AttachDispatch(Workbook.GetWorksheets());<BR>        Worksheet.AttachDispatch(Worksheets.GetItem((COleVariant((long)1))));


        Range.AttachDispatch(Worksheet.GetCells());<BR>        iCell.AttachDispatch(Range.GetItem(COleVariant((long)2),COleVariant((long)2)).pdispVal);


        vResult = iCell.GetMergeCells();


        if(vResult.boolVal == -1)<BR>        {<BR>                AfxMessageBox("Yes");<BR>                <BR>                Range.AttachDispatch(iCell.GetRows());<BR>                long row_num = Range.GetCount();


                Range.AttachDispatch(iCell.GetColumns());<BR>                long col_num = Range.GetCount();


                CString str;<BR>                str.Format("%d×%d",row_num,col_num);<BR>                AfxMessageBox(str);<BR>        }<BR>


请教:为什么str得到的结果都是1×1?(求合并单元格的原始行数和列数)。


谢谢。。。。。。。。。。

unionsoft 发表于 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();                                                                                       //合并单元格列数

wangws2005 发表于 2005-5-14 14:23:00

看后茅塞顿开啊!
页: 1 [2] 3 4
查看完整版本: [原创]在VC中彻底玩转Excel