-
大小: 27KB文件類型: .rar金幣: 2下載: 0 次發布日期: 2021-05-18
- 語言: C/C++
- 標簽: VS2010/MFC??excel??
資源簡介
VS2010建立MFC工程,讀寫excel操作類

代碼片段和文件信息
#include?“StdAfx.h“
#include?“OperationExcelFile.h“
COleVariant
covTrue((short)TRUE)
covFalse((short)FALSE)
covOptional((long)DISP_E_PARAMNOTFOUND?VT_ERROR);????
//
CApplication?OperationExcelFile::excel_application_;
OperationExcelFile::OperationExcelFile():
????already_preload_(FALSE)
{
}
OperationExcelFile::~OperationExcelFile()
{
????//
????CloseExcelFile();
}
//初始化EXCEL文件,
BOOL?OperationExcelFile::InitExcel()
{
CoUninitialize();
if(CoInitialize(NULL)==S_FALSE)?
{?
AfxMessageBox(_T(“初始化COM支持庫失敗!“));?
return?FALSE;?
}
????//創建Excel?2000服務器(啟動Excel)?
????if?(!excel_application_.CreateDispatch(_T(“Excel.Application“)NULL))?
????{?
????????AfxMessageBox(_T(“創建Excel服務失敗你可能沒有安裝EXCEL,請檢查!“));?
????????return?FALSE;
????}
????excel_application_.put_DisplayAlerts(FALSE);?
????return?TRUE;
}
//
void?OperationExcelFile::ReleaseExcel()
{
????excel_application_.Quit();
????excel_application_.ReleaseDispatch();
????excel_application_=NULL;
}
//打開excel文件
BOOL?OperationExcelFile::OpenExcelFile(LPCTSTR?file_name)
{
????//先關閉
????CloseExcelFile();
????
????//利用模板文件建立新文檔?
????excel_books_.AttachDispatch(excel_application_.get_Workbooks()true);?
//文件存在則打開,否則新建
????LPDISPATCH?lpDis?=?NULL;
CFileFind?fileFinder;
if(?fileFinder.FindFile(file_name)?)
{
lpDis?=?excel_books_.Add(?COleVariant(file_name)?);?
}
else
{
lpDis?=?excel_books_.Add(vtMissing);
}
????if?(lpDis)
????{
????????excel_work_book_.AttachDispatch(lpDis);?
????????//得到Worksheets?
????????excel_sheets_.AttachDispatch(excel_work_book_.get_Worksheets()true);?
????????
????????//記錄打開的文件名稱
????????open_excel_file_?=?file_name;
????????return?TRUE;
????}
????
????return?FALSE;
}
//關閉打開的Excel?文件默認情況不保存文件
void?OperationExcelFile::CloseExcelFile(BOOL?if_save)
{
????//如果已經打開,關閉文件
????if?(open_excel_file_.IsEmpty()?==?FALSE)
????{
????????//如果保存交給用戶控制讓用戶自己存,如果自己SAVE,會出現莫名的等待
????????if?(if_save)
????????{
????????????ShowInExcel(TRUE);
????????}
????????else
????????{
????????????//
????????????excel_work_book_.Close(COleVariant(short(FALSE))COleVariant(open_excel_file_)covOptional);
????????????excel_books_.Close();
????????}
????????//打開文件的名稱清空
????????open_excel_file_.Empty();
????}
????excel_sheets_.ReleaseDispatch();
????excel_work_sheet_.ReleaseDispatch();
????excel_current_range_.ReleaseDispatch();
????excel_work_book_.ReleaseDispatch();
????excel_books_.ReleaseDispatch();
}
void?OperationExcelFile::SaveasXSLFile(const?CString?&xls_file)
{
????excel_work_book_.SaveAs(COleVariant(xls_file)
????????covOptional
????????covOptional
????????covOptional
????????covOptional
????????covOptional
????????0
????????covOptional
????????covOptional
????????covOptional
????????covOptional
????????covOptional);
????return;
}
int?OperationExcelFile::GetSheetCount()
{
????return?excel_sheets_.get_Count();
}
CString?Op
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5004??2016-05-25?09:52??CWorksheets.h
?????文件???????2725??2016-05-28?17:35??OperationExcelFile.h
?????文件??????75255??2016-05-25?09:52??CApplication.h
?????文件??????44694??2016-05-25?10:09??CRange.h
?????文件??????29264??2016-05-25?09:52??CWorksheet.h
?????文件???????7444??2016-05-25?09:52??CWorkbooks.h
?????文件??????44467??2016-05-25?09:52??CWorkbook.h
?????文件??????15266??2016-05-28?17:05??OperationExcelFile.cpp
-----------?---------??----------?-----??----
???????????????224119????????????????????8
評論
共有 條評論