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属性,即可显示。
由于我们用来操作Excel文档的Excel库是office2000的库,保存文件的不支持Xml格式,但是支持html格式文件,故采用了:
axSpreadsheet.HTMLURL = saveHtmlName;
显示效果还可以。当然,由于系统已经投入使用,所以,要完全使用新的方式,还得做大量的测试,免得出现新的问题。当然,如果哪位高手有更好的建议,请提出。
说明:
SpreadSheet的数据来源可以有三种,分别为CSV Data、XML、Html,分别对应方法为CSVData/CSVURL、XMLData/XMLURL、HTMLData/HTMLURL。不过这仅限于比较规则的二维表结构的数据。 一般的还是采用逐行设定值的方式。
Office2003对象库版本是 Excel11.0,Office 2000为Excel9.0,Office XP为Excel10.0。
SpreadSheet类的相关资料:http://www.cnblogs.com/mihayinoviki/archive/
出处:http://jinglelin.cnblogs.com