在日常操作中,Office文档恐怕是大家最为常用的文件.同时,随着电子化的逐步推广,对Office文档的操作要求更越来越高,不只是在硬盘里的某个文件夹里新建,修改Office文档了,可能需要在浏览器里编辑文档,也可能嵌入至某个CS应用程序里,并且把文件以二进制串的形式存储到Db中.

      之前有过一篇贴子,介绍过一款控件,名称是EDrawOffice控件,它可以同时在WebForm和WinForm程序里同时操作.功能也是很强大的,美中不足的呢,就是收费,没注册出现的情况是在关闭控件所在页面以后,会弹出一个对话框.

      其实微软提供了一个叫dsoframer的控件,它是免费的.而且据说EDrawOffice控件也是基于这个控件搞的,至于是否属实就不清楚了.我们还是先看看如何使用dsoframer控件吧,在园子里找了相关资料,但很少有个完整的示例,因此,趁周末时搞了下,弄个demo出来,方便大家哈.额,不说废话了,我们开始吧

      先说下控件的版本,是V2.2.1.2的,我也不知道从什么地方下的,是一个哥们发给我的.已经在我提供的下载文件中,大家直接使用即可.

      1.WinForm环境下使用

      我们首先要对控件注册,注册成功后,才能够被net作为类库使用.下载文件中提供了一个reg.bat的批处理文件,直接运行即可.成功以后,在我们建好的应用程序里,新建一控件tab页面,然后选择”浏览”文件,如图-1所示.控件加载成功,就会出现如图-2所示

clip_image002

图-1

clip_image003

图-2

      OK,我们开始真正使用它.这里只实现了最基本的操作,如图-3所示.这里以操作Word文档为例.

clip_image004

图-3

      需要注意的地方就是打开文档时,并不是直接打开文档,而是将文档复制一份临时文件,打开的是临时文件,这样在保存时就可以直接保存了.如果直接打开文件的话,保存时被报错,提示该文件正在被占用.不知道大家注意没有,我们在打开Word文档时,会立刻生成一个临时文件,应该也是这个原因吧.

      其次就是保存至Db的代码了,这里使用的是SQLServer2005的环境,保存文档的字段数据类型是image,Oracle中对应的就是Blob或Clob了.保存使用的是实体方式,如图-4所示

clip_image006

图-4

      最后,再说下从Db中读取Image字段类型,转为Word文档,再展示至控件中.代码也不复杂,如图-5所示

clip_image008

图-5

      2.WebForm环境下使用

      在此环境下,有个地方需要屏蔽下,如图-6所示.可能这个控件不支持标准的W3C要求.其他操作基本的WinForm下面的代码相同,在此就不多说了.直接看demo就可以了.

clip_image010

图-6

      用于保存Office文档的Db语句,放在ReferDll文件夹里了,直接运行即可

      控件刚开始使用,感觉还是不错的,轻量而且免费.主要是微软提供,大树底下好乘凉啊.哈哈.

      示例程序:基于DsoFramer控件的Office编辑控件.Files

作者: Vincent.Q 发表于 2011-03-28 08:56 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"