www.gusucode.com > VC++操作SqlServer数据库的参考源程序源码程序 > VC++操作SqlServer数据库的参考源程序源码程序/code/Operation.cpp

    // Operation.cpp: implementation of the COperation class.
// Download by http://www.NewXing.com
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Student.h"
#include "Operation.h"
#include "comdef.h" 
#include "Excel9.h" 
#include "istudent.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern CStudentApp theApp;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

COperation::COperation()
{
	m_iRecID=0;
}

COperation::~COperation()
{

}

///导出表内容到excel
void COperation::ExportToExcel(_RecordsetPtr Rsc)
{
		_Application ExcelApp; 
	Workbooks wbsMyBooks; 
	_Workbook wbMyBook; 
	Worksheets wssMysheets; 
	_Worksheet wsMysheet; 
	Range rgMyRge; 

	if(!ExcelApp.CreateDispatch("Excel.Application",NULL)) 
	{
		AfxMessageBox("Error!");
		exit(1);
	}
	
	wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true); 
	
	wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t("f:\\My.xlT"))); 
	//得到Worksheets 

	wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true); 
	//得到sheet1 
	wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true); 
	//得到全部Cells,此时,rgMyRge是cells的集合 
	rgMyRge.AttachDispatch(wsMysheet.GetCells(),true); 
	//设置1行1列的单元的值 
	//rgMyRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("This Is A Excel Test Program!")); 
	////填充记录集的值到单元格
	ExcelApp.SetVisible(TRUE);
	for (int i=0;i<Rsc->Fields->Count;i++)
		{
			rgMyRge.SetItem(_variant_t((long)1),_variant_t((long)(i+1)),_variant_t(Rsc->Fields->GetItem(_variant_t((long)i))->Name)); 
		}
	for(int row=0;row<Rsc->RecordCount;row++)
	{	for(int col=0;col<Rsc->Fields->Count;col++)
		{
			rgMyRge.SetItem(_variant_t((long)(row+2)),_variant_t((long)(col+1)),_variant_t(Rsc->Fields->GetItem(_variant_t((long)col))->Value)); 
		}
		Rsc->MoveNext();
	}
	
	//得到所有的列 
	//rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true); 
	//得到第一列 
	//rgMyRge.AttachDispatch(rgMyRge.GetItem(_variant_t((long)1),vtMissing).pdispVal,true); 
	//设置列宽 
	//rgMyRge.SetColumnWidth(_variant_t((long)200));
//	ExcelApp.SetVisible(TRUE);
	rgMyRge.ReleaseDispatch(); 
	wsMysheet.ReleaseDispatch(); 
	wssMysheets.ReleaseDispatch(); 
	wbMyBook.ReleaseDispatch(); 
	wbsMyBooks.ReleaseDispatch(); 
	ExcelApp.ReleaseDispatch(); 
	
}