最近在做毕业设计。其中要用到Excel录入技术。本人技术不好,只好到网上查找资料。将查到的资料分装成类,如下: // MyExcel.h: interface for the MyExcel class. // // #if !defined(AFX_MYEXCEL_H__383C31D0_0535_4238_B3CB_393A603C0EB9__INCLUDED_) #define AFX_MYEXCEL_H__383C31D0_0535_4238_B3CB_393A603C0EB9__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "excel.h" class MyExcel { public: MyExcel(); virtual ~MyExcel(); void OpenExcel(CString fileName); //打开Excel文件 void CloseExcel(CString xls); //关闭Excel文件 void ReadExcel(); //读取Excel文件 private: _Application oApp; Workbooks oBooks; _Workbook oBook; Sheets oSheets; _Worksheet oSheet; Range oRange; public: CString strData[99][99]; //用于存放读取的数据 }; #endif // !defined(AFX_MYEXCEL_H__383C31D0_0535_4238_B3CB_393A603C0EB9__INCLUDED_) // MyExcel.cpp: implementation of the MyExcel class. // // #include "stdafx.h" #include "Score.h" #include "MyExcel.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); // // Construction/Destruction // MyExcel::MyExcel() { } MyExcel::~MyExcel() { } /// //函数 OpenExcel(CString fileName) //功能:打开Excel文件 /// void MyExcel::OpenExcel(CString fileName) { COleException pError; if (!oApp.CreateDispatch("Excel.Application", &pError)) { pError.ReportError(); return; } else { oBooks = oApp.GetWorkbooks(); oBook = oBooks.Open(fileName,covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional); oSheet = oBook.GetActiveSheet(); } } // //函数 CloseExcel(CString xls) //功能:关闭Excel文件 // void MyExcel::CloseExcel(CString xls) { oBook.Close(covOptional,COleVariant(xls),covOptional); oBooks.Close(); oApp.Quit(); oApp.ReleaseDispatch(); } /// //函数 ReadExcel() //功能:读取Excel文件 /// void MyExcel::ReadExcel() { oSheets = oBook.GetWorksheets(); oSheet = oSheets.GetItem(COleVariant((short)1)); oRange = oSheet.GetCells(); COleVariant ItemID; _Application pApp; COleVariant row, col, value; long nRow=oRange.GetRow(); long nCol=oRange.GetColumn(); CString text, temp; nRow=99; nCol=99; BOOL bNO; int NOCount=0; // CString str[99][5]; for(int r=2;r<=nRow&&NOCount<3;r++) { bNO=TRUE; for(int c=1;c<=nCol;c++) { row = (short)r; col = (short)c; ItemID = oRange.GetItem(row,col); pApp.AttachDispatch(ItemID.pdispVal,TRUE); text = pApp.GetValue(); if(text!="") { bNO=FALSE; strData[r-2][c-1]=text.GetBuffer(0); } } if(bNO) NOCount++; else NOCount=0; } }