Adobe ColdFusion读写Microsoft Office Excel数据(1)

  Adobe公司最新推出的ColdFusion9新增了很多令人兴奋地功能,这些功能具体体现在新出现的标签(Tag)上。比如,与微软Office文件的互操作性(CFSPREADSHEET),与其最新开发工具ColdFusion Builder的紧密集成,对象-关系映射(ORM),与微软Office SharePoint的集成(CFSHAREPOINT),ColdFusion作为服务,Adobe AIR本地/远程数据库同步,服务管理器以及对门户标准的嵌入支持等。

  笔者这几篇随笔简单介绍下ColdFusion9与Excel的交互操作。

  首先做一下准备工作,安装ColdFusion9和ColdFusion Builder, 添加ColdFusion Server并且配置好相关数据源。从CFBuilder中RDS Dateview观测自带的示例数据库可以验证连接正常。如图1.

图 1

         然后还需要一个示例Excel文件Sales.xls。不妨随意造些数据,如图2.

图 2

  接着新建ColdFusion Project,姑且命名为MyFirstCFPjt, 从项目中添加一个文件夹spreadsheet。从新建的spreadsheet中添加一个新的ColdFusion Page,由于要先做一个读取操作的Demo, 因此将其命名为read.cfm. 具体代码很简单,只需要将下面的写到新建的read.cfm中即可用内置的浏览器进行浏览操作了。 

<!--- Read as query --->
<cfspreadsheet
	action = "read"
	src = "Sales.xls"
	query = "myQuery">
<cfdump var = "#myQuery#">

  以上代码主要是将Sales.xls里的数据读取到一个query中。然后可以在程序其他地方应用这个query中的数据。cfdump标签用来将特定的ColdFusion对象的详细信息展示出来。

  在CFBuilder内置的IE浏览器中效果如图3. 

图 3

     自然,我们也可以以一种开发人员更加熟悉的方式使用查询结果,使用方法同普通的查询。将下面的代码添加到read.cfm中

 

<!--- Html content ---> <html> <head> <title>ColdFusion9 Excel Read Demo</title> </head> <body> <h2>Demo of retriving data from Excel files</h2> <table border=1> <tr colspan=5 border=0> <th>Sales detail</th> </tr> <cfoutput query="myQuery"> <tr> <td>#myQuery.COL_1#</td> <td>#myQuery.COL_2#</td> <td>#myQuery.COL_3#</td> <td>#myQuery.COL_4#</td> <td>#myQuery.COL_5#</td> </tr> </cfoutput> </table> </body> </html>

  在浏览器中浏览查看,效果如图4. 

图 4

       要想获取某个特定单元格中的数据并将其放入特定变量,利用上面提到的查询方式很容易实现,但CF9提供了一种更加简便的方式,只需要设置cfspreadsheet标签的rows和columns属性即可。将下面代码放入read.cfm, 在浏览器中浏览。此时要注意设置format属性。

<!--- Read specific cell to variable --->
<cfspreadsheet
	action = "read"
	format="csv"
	src = "Sales.xls"
	name = "myVar"
	sheet = "1"
	rows = "3-5"
	columns = "3">
<cfoutput>#myVar#</cfoutput>

       这样就可以像使用普通ColdFusion变量一样使用从Excel文件特定单元格中获取的数据了。

posted @ 2010-01-22 13:00  spoony  阅读(937)  评论(0编辑  收藏  举报