项目TestSC2SpO2DataToExcel

来源:互联网 发布:一个c语言源程序是由 编辑:程序博客网 时间:2024/05/18 02:08

一、在VS2010/MFC下创建基于对话框的项目TestSC2SpO2DataToExcel,创建过程中注意勾选“自动化”选项,系统将添加OLE自动化的代码。

1.增加了文件 DlgProxy.h、DlgProxy.cpp、TestSC2SpO2DataToExcel.idl 和TestSC2SpO2DataToExcel.reg。

2.stdafx.h文件中增加了一行代码:#include <afxdisp.h>        // MFC 自动化类

3.Dlg文件中增加了代码:

DECLARE_DYNAMIC(CTestSC2SpO2DataToExcelDlg);
friend class CTestSC2SpO2DataToExcelDlgAutoProxy;


virtual ~CTestSC2SpO2DataToExcelDlg();


CTestSC2SpO2DataToExcelDlgAutoProxy* m_pAutoProxy;

BOOL CanExit();


afx_msg void OnClose();
virtual void OnOK();
virtual void OnCancel();



二、添加MFC Edit Browse Control 拖拽控件。

三、按照Test_PSG_FileV1组织结构引用文件;

Dlg的.cpp文件增加 #pragma comment(lib, "..\\Debug\\BMC_DevInterface.lib")导入库或者直接项目右键添加现有项,把BMC_DevInterface.lib添加进来也行。

Dlg的.h文件增加#include "../Include/DeviceInterface.h"

四、下面开始添加EXCEL相关的:项目右键--》添加类--》TypeLib中的MFC类--》选中注册表,在右侧的 可用的 类型库中选择 Microsoft Excel 12.0 Object Library<1.6>,

在接口里面添加_Application、_Workbook、_Worksheet、Workbooks、Worksheets、Range。

五、在CApplication.h文件中去掉#import "C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE" no_namespace

添加:

#import "C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE12\\MSO.DLL" \
rename(L"RGB", L"MSORGB") \
rename(L"DocumentProperties", L"MSODocumentProperties")
using namespace Office;
#import "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.OLB"


using namespace VBIDE;
#import "C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE" \
rename(L"DialogBox", L"ExcelDialogBox") \
rename(L"RGB", L"ExcelRGB") \
rename(L"CopyFile", L"ExcelCopyFile") \
rename(L"ReplaceText", L"ExcelReplaceText") \
no_auto_exclude
using namespace Excel;

六、在Dlg的.cpp文件中添加

#include "CApplication.h"
#include "CWorkbooks.h"
#include "CWorkbook.h"
#include "CWorksheets.h"
#include "CWorksheet.h"
#include "CRange.h"

七、报错:warning C4003: “DialogBoxW”宏的实参不足和error C2059: 语法错误:“,” ,此时需要将CRange中的DialogBox改个名字前面加个Range或者_都可以。

八、在需要调用EXCEL的地方添加如下代码:比如在Dlg的cpp文件中,按下某个按钮的相应函数中:

CApplication ExcelApp;
CWorkbooks books;
CWorkbook book;
CWorksheets sheets;
CWorksheet sheet;
CRange range;
LPDISPATCH lpDisp = NULL;


//创建Excel 服务器(启动Excel)
if(!ExcelApp.CreateDispatch(L"Excel.Application",NULL))
{
AfxMessageBox(L"启动Excel服务器失败!");
return ;
}




ExcelApp.put_Visible(TRUE);
ExcelApp.put_UserControl(FALSE);

.........

九、编译连接运行成功。


具体代码见:http://download.csdn.net/detail/xiaxiaojing/8501639


题外话:卸载OFFCIE之后,会报错如下:



0 0
原创粉丝点击