利用 R (D)COM Server 实现 R 与 MS Office 的整合

20
利利 R (D)COM Server 利利 R 利 MS Office 利利利 李李

description

利用 R (D)COM Server 实现 R 与 MS Office 的整合. 李舰. 2001.09~2005.07 中国人民大学 统计学院 2005.09~2007.06 北京大学 软件与微电子学院 电子服务 2007.07~2008.10 Siemens Ltd., China, Healthcare, Performance Controlling Finance Analyst 2008.11~ 上海源略数据服务有限公司 BI 顾问. 目录. 简介 R 与 MS Office 的整合 - PowerPoint PPT Presentation

Transcript of 利用 R (D)COM Server 实现 R 与 MS Office 的整合

Page 1: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

利用 R (D)COM Server 实现R 与 MS Office 的整合

李舰

Page 2: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

• 2001.09~2005.07

– 中国人民大学 统计学院

• 2005.09~2007.06

– 北京大学 软件与微电子学院 电子服务

• 2007.07~2008.10

– Siemens Ltd., China, Healthcare, Performance Controlling Finance Analyst

• 2008.11~ – 上海源略数据服务有限公司 BI 顾问

Page 3: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

目录• 简介• R 与 MS Office 的整合• 一个报表生成系统的实现

Page 4: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

什么是 COM

• COM ( Component Object Model ) 组件对象模型 )– 以 WIN32 中 DLL 或 EXE 形式发布的可执行代码组成– 可以给应用程序、操作系统以及其他组件提供服务 – 提供了一套允许同一台计算机上的客户端和服务器之间进行通信

的接口 – COM 中的接口是一组由组件实现的提供给客户使用的函数

• DCOM 分布式组件对象模型– 是一系列微软的概念和程序接口 – 利用这个接口,客户端程序对象能够请求来自网络中另一台计算

机上的服务器程序对象 – 在 COM 中开发的应用程序、组件、工具都可以移入分布式的环

境中

Page 5: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

R (D) COM Server

• 提供了一个 R 的 COM 服务器• 为应用程序提供 COM 接口• 额外提供了一个 Excel 的客户端插件

Rexcel

• 能支持 Rexcel 、 Python 、 VBA 、 APL

• http://sunsite.univie.ac.at/rcom/

Page 6: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

代码示例

Page 7: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

目录• 简介• R 与 MS Office 的整合• 一个报表生成系统的实现

Page 8: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

MS Office 的缺陷• Word 与 LaTeX 、 PageMaker

• Excel 与统计软件• Access 与 Oracle 、 MySQL 等• PPT 与 LaTeX

Page 9: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

MS Office 的优势• Word

– WYSIWYG 与 排版规则

• Excel

– 数据处理和展现

• Access

– 编辑和开发

• PPT

– 商务应用

• Outlook , Visio

Page 10: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

R 能做些什么• Rexcel 可以扩充 Excel 的函数• VBA 中调用 R 可以扩充 Excel 的分析功能• 调用 R 的图形输出可以极大美化报告• 在 Office 开发中用作数据分析引擎

Page 11: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

目录• 简介• R 与 MS Office 的整合• 一个报表生成系统的实现

Page 12: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

项目背景• 企业内部应用自动报表生成系统• 关注点

– 报表系统设计模块的研究– 报表系统数据模型的研究

• 要解决的问题– 处理复杂的数据关系– 易于扩展、能自定义关系

Page 13: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

当今报表工具的研究方向• 大型的商业应用• 复杂数据源和多平台的适用• 新的报表系统的架构• 报表系统设计模块的研究• 报表系统数据模型的研究• 结合开发环境的实现• 特定行业的研究

Page 14: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

使用的技术和工具• VBA 语言和 Office 环境;• SQL Server 数据库;• 统计计算环境 R 以及 R(D)COM Server ;• OLE 和 COM ;• 基于任务模型的交互式界面设计。

Page 15: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

需求分析

运行报表

报表应用人员

报表设计人员设计向量

设计格式

模板数据存取

业务数据存取

获取外部数据源DBA

报表使用者

报表发布

<<使用>>

<<使用>>

<<使用>>

<<使用>>

Page 16: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

系统架构

数据库操作模块 布局设置模块

向量定义模块 格式设定模块

向量关系设定模块 数据关联模块

向量解析模块 位置解析模块 报表输出处理模块业务数据源

报表

外部设

计环境

内部

关联

环境

数据处理环境

数据

设计

格式

设计

运行时界面设计

Page 17: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

开发方案• 基于 VBA 环境, Access 作控制台, Excel 、 PPT 展现,

通过 OLE 交互;• SOL Server 作数据库, ODBC 和 RDBMS 方式连接;• R(D)COM Server 作运算服务器,处理数据模型;• 以向量为基本数据结构;• 格式模板存为 Excel ,报表中数据位置信息、与 DB 的映

射关系、对应的 R 对象、 R 中操作方法等信息都存于控制台 Access 的数据表中;数据关系的实现(自定义 R 函数)存于 .RData ;

• 使用基于任务模型的方式开发交互式界面。

Page 18: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

实现方式

应用服务器

业务数据

数据处理服务器

SAP系统

其他数据源

模板数据

R服务器

报表站点个人电脑

<<SQL Server Client>>

<<RDBC>>

<<(D) COM>>

<<ODBC>>

<<ODBC>>

<<OLE>>

<<HTTP>><<HTTP>>

个人电脑

Page 19: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

功能示例• 1. 设计报表(向量设计和格式设计)  - 设定源数据库;  - 选择数据表;  - 设定参数;  - 设计向量;  - 设计格式。• 2. 运行报表系统,生成报表  - 选择工程;  - 选择参数,运行报表;

Page 20: 利用 R (D)COM Server  实现 R 与 MS Office  的整合

该系统的特点• 能方便地处理极复杂的关系;• 能方便地整合财务领域的各种方法;可扩展性非常好;

• 分析系统和报表系统同平台,无需借助第三方分析软件;

• 能够胜任大型的商务系统。