winform窗体中嵌入显示Excel文件

        最近做的一个项目是C/S结构的,由于客户需要,需要在Winform页面上直接显示Excel文件。对于个人来说,我一直都是在从事B/S结构的项目开发,对于Asp.net很熟悉。但是c/s结构项目的开发还是首次,刚开始的时候非常不适应。
为了实现这个目标,我的
partner使用了:axWebBrowser控件,进行显示。

 //显示报表
object MissingValue=System.Reflection.Missing.Value;
axWebBrowser1.Navigate(SavePath,
ref MissingValue,ref MissingValue,ref MissingValue,ref MissingValue);  

        这种方法,已经用了好几个月,发现用的不是很好,本人主要觉得有两个问题:1)系统页面显示Excel文件时,无法进行正常的Excel文档操作,估计是Excel进程问题。2)有时候无法正常显示Excel文档,可能是超时的原因。(那事实上到底是什么原因呢?暂时找不到确切的原因)。

        直到前些时间发现同事在使用axSpreadsheet控件,发现该控件的使用效果比axWebBrowser好,所以决定进行转用axSpreadsheet控件。主要用法是把Excel文件转换成xml文件,如何设置其XMLURL属性,即可显示。

axSpreadsheet1.XMLURL = saveXmlName;//saveXmlName是Excel保存成xml格式的文件名称

由于我们用来操作Excel文档的Excel库是office2000的库,保存文件的不支持Xml格式,但是支持html格式文件,故采用了:
axSpreadsheet.HTMLURL = saveHtmlName;
显示效果还可以。当然,由于系统已经投入使用,所以,要完全使用新的方式,还得做大量的测试,免得出现新的问题。当然,如果哪位高手有更好的建议,请提出。

 说明:
 SpreadSheet
的数据来源可以有三种,分别为CSV DataXMLHtml,分别对应方法为CSVData/CSVURLXMLData/XMLURLHTMLData/HTMLURL。不过这仅限于比较规则的二维表结构的数据。 一般的还是采用逐行设定值的方式。

 Office2003对象库版本是 Excel11.0,Office 2000为Excel9.0,Office XP为Excel10.0。
SpreadSheet类
的相关资料:http://www.cnblogs.com/mihayinoviki/archive/2004/04/08/5476.html

posted @ 2007-07-31 15:40  可乐加冰  阅读(8339)  评论(2编辑  收藏  举报