• 大小: 80KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C/C++
  • 标签: MFC  Excel  C++  Dll  

资源简介

本资源基于MFC库提供了VS2008环境下的一键导出数据至Excel组件源码及可用的库文件,使得可以快速一键导出内存数据至excel中,在使用过程中如果遇到任何问题请邮件至fangang_work2014@qq.com咨询,欢迎大家一起学习交流。

资源截图

代码片段和文件信息

// EcxelOperationDll.cpp : 定义 DLL 的初始化例程。
//

#include “stdafx.h“
#include “ExcelOperationDll.h“
#include “Shlwapi.h“
#include “OEObeject.h“
#include “CApplication.h“
#include “CWorkbooks.h“
#include “CWorkbook.h“
#include “CWorksheets.h“
#include “CWorksheet.h“
#include “CRange.h“
#include “CFont0.h“
#include “Cnterior.h“

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


#pragma comment(lib“Shlwapi.lib“)


//
//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,
// 则从此 DLL 导出的任何调入
// MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
// 该函数的最前面。
//
// 例如:
//
// extern “C“ BOOL PASCAL EXPORT ExportedFunction()
// {
// AFX_MANAGE_STATE(AfxGetStaticModuleState());
// // 此处为普通函数体
// }
//
// 此宏先于任何 MFC 调用
// 出现在每个函数中十分重要。这意味着
// 它必须作为函数中的第一个语句
// 出现,甚至先于所有对象变量声明,
// 这是因为它们的构造函数可能生成 MFC
// DLL 调用。
//
// 有关其他详细信息,
// 请参阅 MFC 技术说明 33 和 58。
//

// CEcxelOperationDllApp

BEGIN_MESSAGE_MAP(CEcxelOperationDllApp CWinApp)
END_MESSAGE_MAP()


// CEcxelOperationDllApp 构造

CEcxelOperationDllApp::CEcxelOperationDllApp()
{
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}


// 唯一的一个 CEcxelOperationDllApp 对象

CEcxelOperationDllApp theApp;


// CEcxelOperationDllApp 初始化

BOOL CEcxelOperationDllApp::InitInstance()
{
CWinApp::InitInstance();

if(!AfxOleInit())
{
AfxMessageBox(_T(“Cannot initialize COM dll“));
return FALSE;
}

return TRUE;
}

EXTERN_C AFX_CLASS_EXPORT void SaveToExcel(std::list& dataListstd::list& colNameListCString outFileName)
{
int dataSize = dataList.size();

if ( dataSize<= 0 )
{
AfxMessageBox(_T(“纪录为空,无需导出!“));
return;
}

CFileDialog FileDialog(FALSE//Save;
NULLoutFileNameOFN_HIDEREADONLY | OFN_OVERWRITEPROMPT_T(“Microsoft Excel (*.xls)|*.xls|所有文件(*.*)|*.*||“)NULL);
if(FileDialog.DoModal()!=IDOK)
return;
CString strFile=FileDialog.GetPathName();
if(::PathFileExists(strFile))
DeleteFile(strFile);

// Commonly used OLE variants.
COleVariant
covTrue((short)TRUE)
covFalse((short)FALSE)
covOptional((long)DISP_E_PARAMNOTFOUND VT_ERROR);

CApplication app;

// Start Excel and get an Application object.
if(!app.CreateDispatch(TEXT(“Excel.Application“)))
{
AfxMessageBox(TEXT(“Couldn‘t start Excel and get Application object.“));
return;
}

CWorkbooks books;
CWorkbook book;
CWorksheets sheets;
CWorksheet sheet;
CRange range;
CFont0 font;

books = app.get_Workbooks();
book = books.Add (covOptional);

//Get the first sheet.
sheets =book.get_Sheets();
sheet = sheets.get_Item(COleVariant((short)1));


//开始写入表头
int iRowiCol;
int nCols = colNameList.size();
int nRows = dataSize;

char name=‘A‘-1;
CString colname;

iCol = 0;
std::list ::iterator itor = colNameList.begin();
while(itor!=colNameList.end())
{
name+=1;
colname.Format(_T(“%c1“)name);
range = sheet.get_Range(COleVariant(colname)COleVariant(colname));
range.put_

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-11-30 10:11  SaveToExcel\
     目录           0  2016-11-30 09:51  SaveToExcel\库\
     目录           0  2016-11-30 09:52  SaveToExcel\库\include\
     文件        2538  2016-11-30 09:28  SaveToExcel\库\include\ExcelOperationDll.h
     目录           0  2016-11-30 10:10  SaveToExcel\库\lib\
     文件       18432  2016-11-30 10:07  SaveToExcel\库\lib\ExcelOperationDll.dll
     文件        1916  2016-11-30 10:07  SaveToExcel\库\lib\ExcelOperationDll.lib
     文件      111104  2016-11-30 10:11  SaveToExcel\库\lib\ExcelOperationDll_d.dll
     文件        1916  2016-11-30 10:11  SaveToExcel\库\lib\ExcelOperationDll_d.lib
     目录           0  2016-11-30 09:54  SaveToExcel\源码\
     目录           0  2016-11-30 09:54  SaveToExcel\源码\ExcelOperationDll\
     文件       79899  2016-11-29 09:00  SaveToExcel\源码\ExcelOperationDll\CApplication.h
     文件        6223  2016-11-29 09:00  SaveToExcel\源码\ExcelOperationDll\CFont0.h
     文件        4301  2016-11-29 09:00  SaveToExcel\源码\ExcelOperationDll\Cnterior.h
     文件       45582  2016-11-29 09:01  SaveToExcel\源码\ExcelOperationDll\CRange.h
     文件       45521  2016-11-29 09:00  SaveToExcel\源码\ExcelOperationDll\CWorkbook.h
     文件        7355  2016-11-29 09:00  SaveToExcel\源码\ExcelOperationDll\CWorkbooks.h
     文件       29325  2016-11-29 09:00  SaveToExcel\源码\ExcelOperationDll\CWorksheet.h
     文件        4915  2016-11-29 09:00  SaveToExcel\源码\ExcelOperationDll\CWorksheets.h
     目录           0  2016-11-30 09:54  SaveToExcel\源码\ExcelOperationDll\Debug\
     文件        5724  2016-11-30 09:12  SaveToExcel\源码\ExcelOperationDll\ExcelOperationDll.cpp
     文件         122  2016-11-29 18:42  SaveToExcel\源码\ExcelOperationDll\ExcelOperationDll.def
     文件        2538  2016-11-30 09:28  SaveToExcel\源码\ExcelOperationDll\ExcelOperationDll.h
     文件        3080  2016-11-29 18:30  SaveToExcel\源码\ExcelOperationDll\ExcelOperationDll.rc
     文件        5939  2016-11-30 09:50  SaveToExcel\源码\ExcelOperationDll\ExcelOperationDll.vcproj
     文件         118  2016-11-29 09:07  SaveToExcel\源码\ExcelOperationDll\OEObeject.cpp
     文件         625  2016-11-29 09:28  SaveToExcel\源码\ExcelOperationDll\OEObeject.h
     文件        2176  2016-11-29 08:55  SaveToExcel\源码\ExcelOperationDll\ReadMe.txt
     目录           0  2016-11-30 09:54  SaveToExcel\源码\ExcelOperationDll\Release\
     目录           0  2016-11-30 09:54  SaveToExcel\源码\ExcelOperationDll\res\
     文件         373  2016-11-29 08:55  SaveToExcel\源码\ExcelOperationDll\Resource.h
............此处省略4个文件信息

评论

共有 条评论