发信人: johnnyxu()
整理人: (1999-09-06 23:51:30), 站内信件
|
VB Tip (11) - 非OLE自动化方式存取Excel工作表
对于Excel 2000以前的版本,VB如要存取Excel工作表,恐怕只有
使用OLE Automation。如果先把Excel工作表保存为Html文件,再于VB
中用WebBrowser控件打开该文件,只能得到浏览效果,不能编辑。要编
辑工作表,只好在VB中打开宠大的Excel了。如果用ODBC Driver for
Excel或Jet Engine,以类似数据库的方式访问工作薄,只能有限地访
问数据,不能存取格式信息。
现在有了Excel 2000,不,确切地说,只要有Office 2000中的
Office Web Component,就可以以非OLE自动化的方式存取Excel工作表
了。
OWC是一组控件,其中的SpreadSheet控件可以在VB中存取Excel工
作表,而不必打开Excel应用程序。
首先Excel 2000工作薄必须以html格式保存,然后在VB窗体中添
加一个Spreadsheet控件,在属性窗体中设置:
属性名 属性值
DtatType HTMLURL
HTMLURL "test.htm" 'Excel 2000生成的Html文件
接着就可以在VB中修改这个工作表了。您会发现,Excel 2000生
成的html文件能保持工作表的许多格式,如字体、颜色、对齐方式、
边框、公式等等,并且这些格式也能在Spreadsheet中以类似的方式进
行修改。修改完后,用以下方法保存工作表:
Spreadsheet1.ActiveSheet.Export "test.xls",ssExportActionNone
第二个参数ssExportActionNone表示输出时无其它操作,如果为
ssExportActionOpenInExcel,将打开Excel,并把Spreadsheet的内容
输出到Excel。
不要为文件名所迷惑,输出文件test.xls事实上是一个html格式的
文件,而不是Excel特有的格式,所以任何时候,您都能用HTMLURL重新
打开它。
总之,只要以html格式保存Excel工作薄,且该工作薄只有一个工
作表,就可以在VB中用Spreadsheet控件打开、编辑、保存它,且不丢
失许多常用格式或设置(不敢说是所有格式或设置)。
因为Spreadsheet暂不支持多个工作表,如果工作薄包括多个工作
表,Spreadsheet不能显示任何内容,但可以在IE4.01中以非OLE
Automation方式浏览所有工作表(注意也必须是html格式的工作薄)。
以上内容是针对Office 2000测试版,Spreadsheet也缺少直接打印
的功能,预计将来版本的Spreadsheet功能将增强。
John
[email protected]
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.109.84.26]
|
|