• 大小: 13.08MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-14
  • 语言: C/C++
  • 标签: excel  wps  c++  mfc  

资源简介

整理MFC下读取excel和wps表格的基本操作。 读写、表格格式设定,表格合并等。 附wps的api帮助文档,excel和wps所用类基本完全一样,这个文档也可以用来开发excel。

资源截图

代码片段和文件信息

/******************************************************************************************
Copyright           : 2000-2004 Appache  2.0
FileName            : illusion_excel_file.cpp
Author              : Sail
Version             : 
Date Of Creation    : 2009年4月3日
Description         : 
Others              : 
Function List       : 
    1.  ......
        Modification History:
    1.Date  :
Author  :
Modification  :
    这个类是从网上下载的,我坐享其成,感谢原来的作者,我只试试是稍稍做了一下修正。
    修正包括一些参数的使用不谨慎,bool 改为BOOL等对于对象关系,我改了一部分,感觉原来的作者对于OO的思路部分不是很清楚。
    对于这类东西OLE,我完全不了解,用别人封装的东西感觉还是放心了很多,C++,伟大的C++
     http://blog.csdn.net/gyssoft/archive/2007/04/29/1592104.aspx
    OLE读写EXCEL都比较慢,所以应该尽量减少OLE的次数
    对于读取,还有解决方法,请试用一下预加载的方式,这个方法一次加载所有的读取数据如此速度就飞快了。
    据说写数据是没有什么方法加快的
    http://topic.csdn.net/t/20030626/21/1962211.html
    增加了一些写入方式的代码,保证可以写入EXCEL数据区,但是对于保存,我发现如果调用CLOSE并且保存的方式,
    速度非常慢,我不理解为什么。
    所以我吧EXCEL打开了,让你进行后续管理
******************************************************************************************/
 
 
 
 
//-----------------------excelfile.cpp----------------

#include “StdAfx.h“
//#include “illusion_excel_file.h“
#include “IllusionExcelFile.h“

using namespace excel_dep;
 
COleVariant
covTrue((short)TRUE)
covFalse((short)FALSE)
covOptional((long)DISP_E_PARAMNOTFOUND VT_ERROR);    
 
//
CApplication IllusionExcelFile::excel_application_;
 
 
IllusionExcelFile::IllusionExcelFile():
    already_preload_(FALSE)
{
}
 
IllusionExcelFile::~IllusionExcelFile()
{
    //
    CloseExcelFile();
}
 
 
//初始化EXCEL文件,
BOOL IllusionExcelFile::InitExcel()
{
 
    //创建Excel 2000服务器(启动Excel) 
    if (!excel_application_.CreateDispatch(“excel.Application“NULL)) 
    { 
        AfxMessageBox(“创建Excel服务失败你可能没有安装EXCEL,请检查!“); 
        return FALSE;
    }
 
    excel_application_.put_DisplayAlerts(FALSE); 
    return TRUE;
}
 
//
void IllusionExcelFile::ReleaseExcel()
{
    excel_application_.Quit();
    excel_application_.ReleaseDispatch();
    excel_application_=NULL;
}
 
//打开excel文件
BOOL IllusionExcelFile::OpenExcelFile(const char *file_name)
{
    //先关闭
    CloseExcelFile();
    
    //利用模板文件建立新文档 
    excel_books_.AttachDispatch(excel_application_.get_Workbooks()true); 
 
    LPDISPATCH lpDis = NULL;
    lpDis = excel_books_.Add(COleVariant(file_name)); 
    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 IllusionExcelFile::CloseExcelFile(BOOL if_save)
{
    //如果已经打开,关闭文件
    if (open_excel_file_.IsEmpty() == FALSE)
    {
        //如果保存交给用户控制让用户自己存,如果自己SAVE,会出现莫名的等待
        if (if_save)
        {
excel_work_book_.Close(COleVariant(short(TRUE)) COleVariant(open_excel_file_) covOptio

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    5816282  2015-02-05 17:13  ET.CHM

     文件    2075706  2015-02-04 16:15  WPP.CHM

     文件    6561998  2015-02-04 16:18  WPS.CHM

----------- ---------  ---------- -----  ----

             14453986                    3


评论

共有 条评论