• 大小: 27KB
    文件类型: .rar
    金币: 1
    下载: 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


评论

共有 条评论