学习微软 Excel VBA 编程和XMLASP技术CH17.docx
- 文档编号:27656085
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:117
- 大小:2.94MB
学习微软 Excel VBA 编程和XMLASP技术CH17.docx
《学习微软 Excel VBA 编程和XMLASP技术CH17.docx》由会员分享,可在线阅读,更多相关《学习微软 Excel VBA 编程和XMLASP技术CH17.docx(117页珍藏版)》请在冰豆网上搜索。
学习微软ExcelVBA编程和XMLASP技术CH17
第十七章 XML和Excel2002
作者:
JulittaKorol 翻译:
TigerChenMay8’2005
在前面的章节里,你掌握了好几种一起使用因特网和Excel的技术。
你已经使用了HTML,ASP以及VBScript将Excel工作表放置到网页上,以及通过网络查询获取网页数据以供以后在Excel里使用。
本章将扩展你的因特网技术知识,介绍已经添加到Excel2002里面的XML功能给你。
XML是什么?
XML,代表ExtensibleMarkupLanguage(可扩展性标示语言),是种令人兴奋的新技术,为设计你自己标示语言以及在你自己的文档里使用该语言描述数据提供机制。
尽管XML是为在万维网传输信息专门设计,但是,它也被利用在其它领域里,例如存储,分享和交换数据。
和HTML一样,XML也是一种标示语言。
然而,HTML和XML功能不一样:
HTML通过使用一套固定的不可自定义的标识描述网页布局,而XML允许你使用自定义标识描述数据内容。
XML的主要目的是从演示中分离出内容。
因为XML文档是文本文件,所以XML是独立于操作系统平台,软件和普通的或者编程的语言之外的。
XML使得很多事情更容易:
描述任何数据结构(结构化的或非结构化的)和使用常规协议,例如HTTP或FTP将其发送到网络任何地方。
只要任意两个组织能够在代表要交换数据的XML标识上达成一致的话,那么这些组织使用什么后端系统或者他们使用什么数据库都不要紧。
尽管任何人都可以通过创建一套自定义标识来描述数据,但是很多的行业组织已经定义出并发布了XML模式,表明设置XML文档格式来代表他们行业的数据。
MicrosoftXML-SS模式就是一个很好的例子,它最终允许你描述电子表格数据(本章后面有详细内容);ChemicalMarkupLanguage(CML化学标示语言)也是个很好的例子,它定义如何使用XML来描述化学行业的数据。
你可以在http:
//www.w3.org或者Vocabularies”。
Excel2002对XML的支持
Excel2002提供了大量的XML支持。
首先,除了保存你的工作簿为标准的*.xls文件之外,你可以轻易地将其保存为XML电子表格。
不需要任何编程技术就可以做到。
在Excel应用软件窗口,只要选择文件|另存为,并在另存为对话框的另存类型下拉框里选择XML电子表格就行(如图17-1)。
你也可以回到Excel里打开XML电子表格并且就像标准Excel文件一样使用它(图17-2)。
Figure17-1:
SavingtheExcel2002workbookintheXMLformatiseasilyaccomplishedbychoosingXMLSpreadsheet(*.xml)intheSaveastypedrop-downbox.
Figure17-2:
AnXMLspreadsheetfileopenedinMicrosoftExcellooksandbehaveslikeastandard.xlsfile.
本章接下来的部分将示范如何使用VBA编程创建XML文件,以及如何通过使用XSL(ExtensibleStylesheetLanguage)和数据绑定设置XML数据格式并显示在网页上。
你也将学习如何使用ActiveXDataObjects(ADO)将从Access示例数据库获取的数据保存为XML到硬盘,或保存为XML在内存。
本章结尾有更复杂的,方便的工程示范如何直接从Excel电子表格里发布时间卡数据到网络服务器。
使用VBA创建XML电子表格文件
既然你知道了如何使用手动方法(参见图17-1)保存和打开XML文件,那么让我们来看看如何可以在Excel2002里使用VBA编程来保存和打开XML文件。
接下来的练习示范如何使用VBA来保存和打开XML格式的电子表格文件。
1.创建工作簿文件如图17-2所示,或者从本书附带的CD里找到Equipment.xls文件。
如果你从新创建一个文件的话,那么将其保存为Equipment.xls
2.在Equipment.xls开启的情况下,激活VB编辑器窗口(Alt+F11)并按下Ctrl+G打开立即窗口
3.立即窗口里输入下述指令,将Equipment.xls保存为XML电子表格格式:
ActiveWorkbook.Worksheets("Units").SaveAs"Units.xml",xlXMLSpreadsheet
当你按下回车后,VB显示如图17-3所示的消息,点击“是”继续。
上面的指令使用xlXMLSpreadsheet文件格式参数将工作簿文件以XML电子表格形式保存到当前目录下。
Figure17-3:
WhenaworkbookfeaturecannotbesavedintheXMLspreadsheetformat,Exceldisplaysamessage.
技巧17-1以XML格式保存Excel工作簿
当你以XML格式保存Excel工作簿时,除了图表、图像、OLE和绘图对象、组合、略图和VBA工程之外,所有关于该工作簿的信息和它的数据都会被保存。
1.如果想知道该文件保存在哪里的话,那么在理解窗口里输入下述语句:
?
ActiveWorkbook.Path
当你按下回车时,该文件路径就会出现在立即窗口里。
你可以指定路径,直接将该文件保存到网络服务器的某个具体目录下,如下所示:
ActiveWorkbook.Worksheets("Units").SaveAs_
http:
//localhost/myfolder/Units.xml”,xlXMLSpreadsheet
上面的语句必须在立即窗口里输入在一行上。
该语句保存该XML文件保存到一个虚拟目录,myfolder,在一个名为localhost的网络服务器上(参加第十六章的如何创建虚拟目录部分)。
2.现在回到立即窗口,并输入下述指令关闭Units.xml文件:
ActiveWorkbook.Close
现在,Units.xml文件被关闭了,然而,Excel应用软件依然在运行,你应该还在VB编辑器窗口。
3.在立即窗口里输入下述语句,重新打开Units.xml文件:
Workbooks.Open"Units.xml"
Excel打开Units.xml文件,该文件看上去就像图17-2所示的Equipment.xml文件一样。
你可以使用该XML文件作为一个标准的XLS文件。
你也可以使用OpenXML方法在Excel里打开XML文件,如下所示:
Workbooks.OpenXML“Units.xml”
OpenXML方法要求需要打开的文件名字符串。
它也可以用第二个,可选的参数——一个数值或者一个数值的数组,指定要应用哪种XSLTstylesheet过程指令。
你将在本章后面学习stylesheets。
技巧17-2XML文件和XLS文件的区别是什么?
私有的二进制形式的XLS文件可以为Excel所识别。
使用手动方式或者VBA编程创建的XML文件是文本文件。
XML文件可以在任何ASCII文本编辑器里打开,或者从头编写。
在记事本里查看XML源文件
你已经编程创建了你的第一个XML电子表格文档,你也打开了它,也看到了该XML文档在Excel用户界面上没有任何不同。
这是因为,在Excel2002里创建的XML,保留了Excel电子表格的格式,结构和数据。
但是,让我们在Windows记事本里打开Units.xml文件,查看背后的XML代码。
正如前面所述,XML是一种使用自定义标识的标示语言,想要理解XML文件的话,那么你必须熟悉XML标识的方式。
我们将继续在立即窗口里,边学习新的XML概念,边做一些编程练习。
下述练习示范如何使用记事本查看XML文件内容。
1.在立即窗口里输入下述指令,在记事本里打开XML文件:
Shell"Notepad.exeUnits.xml"
VB启动记事本,并打开Units.xml文件。
在Windows任务栏上点击适当的图标,切换到记事本。
记事本显示该XML文件,如图17-4所示。
Figure17-4:
TheXMLfilecreatedwithExcelVBAcanbedisplayedinNotepad.
XML文档包含成员树型结构。
每个成员拥有成员类型名称(通常称为标识名称)和一套属性。
注意,XML标识标记在<>里面。
每个属性由一个后面带有等号和属性值的名称组成。
例如,ss:
ID="Default",ss:
Name="Sheet1",ss:
StyleId="s22",ss:
Type="Number",ss:
Size="12",andss:
Formula="=SUM(R[-13]C:
R[-1]C)"就是一些你将在Units.xml源代码里找到的属性示例。
XML电子表格文档最上面的成员是
这也是电子表格文档的根标识。
在根下面,你将发现其它标识,代表子成员。
这些成员准确地定义该电子表格文档。
如果你在记事本窗口往下滚动,你将发现