发信人: 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]
  | 
 
 
 |