在线Excel的原理实现与使用

时间:2022-10-21 08:29:12

在线Excel的原理实现与使用

摘 要: 目前,在计算机数据处理方面,Excel是使用最广泛,操作最方便的数据处理工具,但对数据的交流传递和统计汇总很不方便;再加上网络办公平台的广泛使用,开发设计一套在线Excel很有必要,通过论述dsoframer控件的使用,对如何实现在线Excel的使用进行简单的论述,灵活地解决Excel在线处理,比较容易的实现数据在网络上的统计汇总自动处理。如果进一步对该程序进行完善,将能更具有广泛的使用性和推广性,进一步推动网络自动化办公。

关键词: 在线Excel;Excel模版;Dsoframer控件

中图分类号:TQ015.9 文献标识码:A 文章编号:1671-7597(2012)0210125-02

目前,在计算机数据处理方面,Excel应该是使用最广泛,操作最方便的数据处理工具,它对数据的编辑、格式化、设计报表和打印等功能都提供了很完美的解决方案。但在规模较大的企事业单位,一方面Excel只能通过邮件或纸质报表的方式来交流传递,对于文件管理和汇总很不方便;另一方面为经常变更的统计数据去设计一套MIS(管理信息系统)系统,显然是非常麻烦,且非常的不经济。基于上述两点,再加上网络办公平台的广泛使用,开发设计一套在线Excel,把Excel搬到网络上运行,是很有必要且能够适用各种统计要求。

1 Dsoframer控件的使用

Dsoframer控件是微软提供的开源控件,用于在线编辑、调用Word、Excel、PowerPoint等ActiveX控件。在使用Dsoframer控件前,先用regsvr32进行注册,注册后的Active控件才能使用。设计在线Excel时,在javascript代码段里,通过如下代码完成对Dsoframer控件的引用对象:

0px;HEIGHT:505px"classid="clsid:00460182-9E5E-11D5-B7C8-B8269041DD57" codebase="dsoframer.ocx#version=2,2,0,0">

Dsoframer控件常用方法如下:

1.1 在线新建Excel文档

document.all.MyExcel.CreateNew("Excel.Sheet");

1.2 打开数据库中的Excel文档

document.all.MyExcel.Open( "localhost/onlineExcel/open

Excel.aspx?id=1",true, "Excel.Sheet", "MyUserAccount", "MyPassword");其中openExcel负责提供所需要的Excel文档。

1.3 保存Excel文件到数据库中

document.all.MyExcel.HttpInit();//初始化Http引擎

Document.all.FramerControl1.HttpPost("localhost/onlineExcel/saveExcel.aspx");其中saveExcel.aspx动态页面负责解析数据存于数据库中。

2 在线Excel处理模式

在线Excel的处理方式如下图:

整个实现可以分为两大部分,第一部分是模版的制作及维护,通过Excel软件制作Excel模版,模版制作完成后,保存在数据库中。第二部分是用户借助Excel的模版,从基础数据表中取得对应的基础数据填充到Excel模版里,生成一个标准纸质类型的报表页,网络用户根据报表要求填写数据后,由程序把Excel的单元格数据分解出来,按照规则填充到数据库的业务数据表中,完成业务数据的录入,达到了外观表现为Excel数据,内部存储为二维数据表,便于后面对数据的统计汇总分析。

3 关键技术处理

3.1 模版的制作与保存

在网页xls_add.aspx上通过object标签引用dsoframer控件,网页中即可呈现出Excel操作界面,然后在body标签的加载事件中执行create_xls函数,实现新建Excel文档的目的。Excel文档在线处理后,点击页面上“保存Excel模版到服务器数据库”按钮,执行保存按钮的单击事件savexls_onclick,该事件通过调用dsoframer的HttpPost方法,把数据提交给xls_save.aspx网页,由xls_save.aspx负责把Excel文档内容保存在后台的数据库中,以供网

用户在线处理完数据后,需要把Excel的数据分解成XML的数据格式,然后通过ajax技术把XML的数据发送至保存页面,再由保存页面解析成二维数据表数据,最后保存在数据库中。主要过程如下:

1)Excel模版所在的页面javascript代码中,循环获取Excel单元格数据,然后组装成XML数据。获取单元格的数据通过下面代码实现:

obj = new Object(MyExcel.ActiveDocument);//获得当前控件的文档对象

xls = obj.Application;

strCell=xls.Cells(x,y);//x为单元格所在的行,y为单元格所在的列。

2)保存页面收到传递过来的XML数据后,重新解析成二维数据,然后通过SQL语句保存到数据库中。

处理过程遵循的思想是从Excel数据到XML数据,XML数据传到服务端,服务端接收XML数据,然后把XML数据解析成二维数据,最后保存到数据库中,完成了Excel文档数据保存到二维关系数据库的目的。

4 结束语

本文对如何实现在线Excel的使用进行了简单的论述,并对相关技术关键难点进行了说明,通过dsoframer控件的使用,灵活地解决了Excel在线处理,比较容易的实现了数据在网络上的统计汇总自动处理。如果进一步对该程序进行完善,将能更具有广泛的使用性和推广性,适应更多的企事业单位利用在线Excel统计汇总分析数据,进一步推动网络自动化办公。

参考文献:

[1]杜茂康、王永、李昌兵译,《Excel专业开发》[M].电子工业出版社,2007(4).

[2]罗刚君,《Excel VBA程序开发自学宝典》,电子工业出版社,2009(10).

[3]陈黎夫,《ajax程序设计》,人民邮电出版社,2007(10).

[4]拉芙,《 3.5网站开发全程解析(第3版)》[M],清华大学出版社,2010(7).

[5]邓春红译,《服务器控件与组件开发》[M].机械工业出版社,2003.

[6]扎卡斯,《JavaScript高级程序设计》[M].曹力(译),人民邮电出版社,2006(11).

[7]弗拉纳根,《JavaScript权威指南》[M].机械工业出版社,2007(8).

作者简介:

张静(1972-),女,计算机科学与技术硕士,山东滕州市枣庄科技职业学院讲师。

上一篇:棋类游戏程序架构设计 下一篇:高清时代监控摄像机网络传输的应用分析