说明:
不同版本的
Excel
对应的对象库如下:
office 97
|
office 2000
|
office XP
|
Excel8.olb
|
Excel9.olb
|
XL5CHS32.olb
或
XL5EN32.olb
|
通常导出如下几个类:
_Application //
应用程序类;
Workbooks //
工作薄集合类;
_Workbook //
工作薄类;
Worksheets //
工作表集合类;
_Worksheet //
工作表类;
Range //
单元格类;
使用
Excel
导出类固定代码如下:
::CoInitialize(NULL)
//
注意:必须初始化
OLE/COM
环境。
_Application objApp;
Workbooks objBooks;
_Workbook objBook;
Worksheets objSheets;
_Worksheet objSheet;
Range objRange;
//*
…
代码
…
*//
objRange.ReleaseDispatch();
objSheet.ReleaseDispatch();
objSheets.ReleaseDispatch();
objBook.ReleaseDispatch();
objBooks.ReleaseDispatch();
objApp.ReleaseDispatch();
::CoUnInitialize()
//
关闭
OLE/COM
环境。
一、
_Application
类
1
、初始化
_Application
对象
CreateDispatch(LPCTSTR)
说明:
LPCTSTR
:一般为
"Excel.Application"
。
2
、获取
Workbooks
对象
LPDISPATCH GetWorkbooks()
说明:
获取工作薄集合对象的句柄,可以直接将该句柄赋给工作薄集合对象。
3
、确定
Excel
应用程序是否可见
void SetVisible(BOOL)
说明:
BOOL
:为
TRUE
时可见,否则不可见。
二、
Workbooks
类
1
、添加一个文件到
Workbooks
对象中
LPDISPATCH Add(const VARIANT&)
说明:
LPDISPATCH
:返回工作薄对象句柄,可以将该句柄直接赋给工作薄对象。
VARIANT
:可以是一个文件名或缺省值。
三、
_Workbook
类
1
、获取
Worksheets
对象
LPDISPATCH GetSheets()
说明:
LPDISPATCH
:返回工作表集合对象句柄,可以将该句柄直接赋给工作表集合对象。
2
、打印文档
void PrintOut(VARIANT&, VARIANT&,VARIANT&,VARIANT&, VARIANT&,VARIANT&,VARIANT&,VARIANT&)
说明:
VARIANT&
:打印的开始页码
(
缺省
)
;
VARIANT&
:打印的结束页码
(
缺省
)
;
VARIANT&
:打印的份数;
VARIANT&
:是否显示打印预览;
VARIANT&
:指定打印机
(
缺省
)
;
VARIANT&
:是否打印到文件;
VARIANT&
:是否逐份打印
(
缺省
)
;
VARIANT&
:如果打印到文件,则此参数为文件名
(
缺省
)
;
说明:
在进行缺省设置时,必须定义如下的数据对象,并将此对象赋给参数:
COleVariant dat((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
3
、打印预览
void PrintPreview(const VARIANT&)
说明:
VARIANT
:指定打印预览的起始页码。
四、
Worksheets
类
1
、获取
_Workshee
对象
LPDISPATCH GetItem(const VARIANT&)
说明:
LPDISPATCH
:返回工作表对象句柄,可以将该句柄直接赋给工作表对象。
VARIANT
:工作表的索引
(
基于
1
)
;
五、
_Workshee
类
1
、获取
Range
对象
LPDISPATCH GetCells()
说明:
LPDISPATCH
:返回单元格对象句柄,可以将该句柄直接赋给单元格对象。
注意:这里的单元格对象是指所有单元格。
六、
Range
类
1
、在单元格中设置数据
void SetItem(VARIANT&,VARIANT&,VARIANT&)
说明:
VARIANT
:行的索引
(
基于
1
)
;
VARIANT
:列的索引
(
基于
1
)
;
VARIANT
:数据值;
总结:
只要在
EXCEL
中首先建立一个自定义的表
(
包括字体、标题、页首、页脚等
)
,然后调用
Add(const VARIANT&)(
注意:之前的初始化上面已经提及,在这里就省略
)
,再调用
SetItem(VARIANT&,VARIANT&,VARIANT&)
将数据写入到单元格,最后调用
void PrintOut(VARIANT&, VARIANT&,VARIANT&,VARIANT&, VARIANT&,VARIANT&,VARIANT&,VARIANT&)