精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● 数据库技术>>VisualBasic专题>>VB Tip (11) - 非OLE自动化方式存取Excel

主题:VB Tip (11) - 非OLE自动化方式存取Excel
发信人: 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]

[关闭][返回]