说明:
不同版本的 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&)