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(); }