版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Adobe ColdFusion讀寫(xiě)Microsoft Office Excel數(shù)據(jù) Adobe公司最新推出的ColdFusion9新增了很多令人興奮地功能,這些功能具體體現(xiàn)在新出現(xiàn)的標(biāo)簽(Tag)上。比如,與微軟Office文件的互操作性(CFSPREADSHEET),與其最新開(kāi)發(fā)工具ColdFusion Builder的緊密集成,對(duì)象-關(guān)系映射(ORM),與微軟Office SharePoint的集成(CFSHAREPOINT),ColdFusion作為服務(wù),Adobe AIR本地/遠(yuǎn)程數(shù)據(jù)庫(kù)同步,服務(wù)管理器以及對(duì)門(mén)戶標(biāo)準(zhǔn)的嵌入支持等。筆者這幾篇隨筆簡(jiǎn)單介紹下ColdFusion9與Exc
2、el的交互操作。首先做一下準(zhǔn)備工作,安裝ColdFusion9和ColdFusion Builder, 添加ColdFusion Server并且配置好相關(guān)數(shù)據(jù)源。從CFBuilder中RDS Dateview觀測(cè)自帶的示例數(shù)據(jù)庫(kù)可以驗(yàn)證連接正常。如圖1.圖 1 然后還需要一個(gè)示例Excel文件Sales.xls。不妨隨意造些數(shù)據(jù),如圖2. 推薦精選圖 2接著新建ColdFusion Project,姑且命名為MyFirstCFPjt, 從項(xiàng)目中添加一個(gè)文件夾spreadsheet。從新建的spre
3、adsheet中添加一個(gè)新的ColdFusion Page,由于要先做一個(gè)讀取操作的Demo, 因此將其命名為read.cfm. 具體代碼很簡(jiǎn)單,只需要將下面的寫(xiě)到新建的read.cfm中即可用內(nèi)置的瀏覽器進(jìn)行瀏覽操作了。 view source print?1<!- Read as query -> 2<cfspreadsheet 3 action = "read"4 src = "Sales.xls"5
4、60; query = "myQuery"> 6<cfdump var = "#myQuery#">以上代碼主要是將Sales.xls里的數(shù)據(jù)讀取到一個(gè)query中。然后可以在程序其他地方應(yīng)用這個(gè)query中的數(shù)據(jù)。cfdump標(biāo)簽用來(lái)將特定的ColdFusion對(duì)象的詳細(xì)信息展示出來(lái)。在CFBuilder內(nèi)置的IE瀏覽器中效果如圖3.圖 3 自然,我們也可以以一種開(kāi)發(fā)人員更加熟悉的方式使用查詢結(jié)果,使用方法同普通的查詢。將下面的代碼添加到read.cfm中view s
5、ource 推薦精選print?01<P align=left> </P><P align=left><!- Html content -> 02<html> 03 <head> 04 <title>ColdFusion9 Excel Read Demo</title> 05 </head> 0
6、6 <body> 07 <h2>Demo of retriving data from Excel files</h2> 08 <table border=1> 09 <
7、tr colspan=5 border=0> 10 <th>Sales detail</th> 11 </tr> 12
8、 <cfoutput query="myQuery"> 13 <tr> 14 <td>#myQuery.COL_1#</td> 15
9、; <td>#myQuery.COL_2#</td> 16 <td>#myQuery.COL_3#</td> 17
10、; <td>#myQuery.COL_4#</td> 18 <td>#myQuery.COL_5#</td> 19 </
11、tr> 20 </cfoutput> 21 </table> 22 </body> 23</html> 24 25</P>在瀏覽器中瀏覽查看,效果如圖4. 推薦精選圖 4 &
12、#160; 要想獲取某個(gè)特定單元格中的數(shù)據(jù)并將其放入特定變量,利用上面提到的查詢方式很容易實(shí)現(xiàn),但CF9提供了一種更加簡(jiǎn)便的方式,只需要設(shè)置cfspreadsheet標(biāo)簽的rows和columns屬性即可。將下面代碼放入read.cfm, 在瀏覽器中瀏覽。此時(shí)要注意設(shè)置format屬性。view source print?01<!- Read specific cell to variable -> 02<cfspreadsheet 03 action = "read"04&
13、#160; format="csv"05 src = "Sales.xls"06 name = "myVar"07 sheet = "1"08 rows = "3-5"09 columns = "3"> 10&
14、lt;cfoutput>#myVar#</cfoutput> 這樣就可以像使用普通ColdFusion變量一樣使用從Excel文件特定單元格中獲取的數(shù)據(jù)了。推薦精選上一篇隨筆主要簡(jiǎn)單演示了數(shù)據(jù)讀取操作,要想編輯Excel中數(shù)據(jù)的功能也很容易實(shí)現(xiàn)。代碼幾乎同讀取操作一樣,顯著的不同是要將cfspreadsheet標(biāo)簽的action屬性設(shè)置為write,設(shè)定所要編輯的單元格位置信息并且調(diào)用spreadsheetSetCellValue方法進(jìn)行編輯。我們繼續(xù)使用上一篇隨筆中的那個(gè)示例Excel文件Sales.x
15、ls, 如圖1.圖 1 注意這個(gè)文件第2行第2列的數(shù)字現(xiàn)在是“50000”。新建一個(gè)ColdFusion Page, 并將下面的代碼添加進(jìn)去。view source print?01<!- Read spreadsheet -> 02<cfspreadsheet action="read"03 src="Sales.xls"04 name="sObj"> 05
16、160; 06<!- Set cell value -> 07<cfset spreadsheetSetCellValue(sObj, 60000, 2, 2)> 08 09<!- Write spreadsheet -> 10<cfspreadsheet action="write"11 overwrite="true"12 filename="Sales.xls"13
17、 name="sObj">推薦精選 在瀏覽器中運(yùn)行。然后再次打開(kāi)Sales.xls文件??梢园l(fā)現(xiàn)第2行第2列數(shù)據(jù)已經(jīng)變成了“60000”。如圖2.圖 2前面的示例用了最簡(jiǎn)單的方式介紹了用ColdFusion編輯Excel文件的方式。為了使操作更加靈活方便,筆者再來(lái)演示一個(gè)稍微復(fù)雜的例子。首先新建一個(gè)ColdFusion Page, 與第一篇隨筆對(duì)應(yīng),取名為write.cfm. 添加下面的代碼用來(lái)新建一個(gè)cfform, 注意將form的action屬性設(shè)置為"#CGI.script_name#"
18、;. view source print?01<!- Form used to set entry infomation -> 02<h3>Set specific cell with specific value</h3> 03<cfform action="#CGI.script_name#"> 04<br> 05Region: 06<cfselect name="row"> 07 <option value=&qu
19、ot;2">Northeast</option> 08 <option value="3">East</option> 09 <option value="4">Central</option> 10 <option value="5">South</option> 11
20、60; <option value="6">Southwest</option> 12 <option value="7">West</option> 13</cfselect> 14<br> 推薦精選15<br> 16Quarter: 17<cfselect name="col"> 18 <option value=&q
21、uot;2">Q1</option> 19 <option value="3">Q2</option> 20 <option value="4">Q3</option> 21 <option value="5">Q4</option> 22</cfselect> 23<br>
22、24<br> 25Sales: $<cfinput type="text" name="sales" required="true" validate="integer"> 26<br> 27<br> 28<cfinput type="submit" name="btnSave" value="Save"> 29<br> 30</cfform>
23、60; 在瀏覽器中運(yùn)行一下,看到效果如圖3, 其外觀與普通html form沒(méi)有什么區(qū)別。推薦精選圖 3接下來(lái)在頁(yè)面頂部定義三個(gè)變量,分別用來(lái)表示要設(shè)置的單元格行,列,值信息。view source print?1<!- Init vars -> 2<cfparam name="FORM.row" default=""> 3<cfparam name="FORM.col" default=""> 4<cfparam name="FORM.sa
24、les" default="">最后添加前面講過(guò)的讀寫(xiě)方法,來(lái)實(shí)現(xiàn)對(duì)Excel文件的操作。view source print?01<!- Form submitted -> 02<cfif FORM.row NEQ ""03 AND FORM.col NEQ ""04 AND FORM.sales NEQ ""> 05 <!- Rea
25、d spreadsheet -> 06 <cfspreadsheet action="read"07 src="Sales.xls"08 name="sObj"> 09 <!- Set cell value -> 10
26、 <cfset spreadsheetSetCellValue(sObj, FORM.sales, FORM.row, FORM.col)> 11 <!- Write spreadsheet -> 12 <cfspreadsheet action="write"13 overwrite="true"14
27、60; filename="Sales.xls"15 name="sObj"> 16</cfif>這樣,就可以對(duì)特定的單元格的數(shù)據(jù)進(jìn)行編輯了。推薦精選在實(shí)際應(yīng)用中,除了對(duì)已有Excel表單進(jìn)行讀寫(xiě)操作外,我們很有可能會(huì)需要將系統(tǒng)數(shù)據(jù)導(dǎo)出到Excel文件。導(dǎo)出Excel實(shí)質(zhì)上是利用現(xiàn)有的數(shù)據(jù)新建一個(gè)Excel文件。ColdFusion9很容易實(shí)現(xiàn)這個(gè)功能。下面筆者將
28、通過(guò)小示例來(lái)演示一下。首先新建一個(gè)ColdFusion Page, create.cfm. 將下面的代碼添加進(jìn)去。view source print?01<!- Get data -> 02<cfquery name="arts" datasource="cfartgallery"> 03 SELECT * 04 FROM ART 05</cfquery> 06 07<!- Create
29、spreadsheet -> 08<cfspreadsheet action="write"09 filename="Arts.xls"10 query="arts"11 overwrite="true">此處cfquery標(biāo)簽的datasource屬性為安裝ColdFusion9時(shí)自帶的示例數(shù)據(jù)源,cfartgallery. 利用ColdFusion Buil
30、der的RDS Query Viewer可以對(duì)其中數(shù)據(jù)進(jìn)行查看,先來(lái)看一下ART表中的數(shù)據(jù),如圖1. 推薦精選圖 1從代碼中可以看出其功能是將ART表中的內(nèi)容讀入到arts查詢中,然后寫(xiě)入到一個(gè)新的Excel文件Arts.xls. overwrite=”true”保證如果Excel表單不存在則創(chuàng)建,存在則覆蓋。在瀏覽器中運(yùn)行,可以看到當(dāng)前目錄下多了一個(gè)Excel文件,效果如圖2. 圖 2推薦精選上面的示例僅僅是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)通過(guò)ColdFusion查詢寫(xiě)入到一個(gè)新的Excel表單中。這是最原始的方法,其中并沒(méi)有在意新建的Excel表單的美觀程度,也沒(méi)有我們很想要的匯總等等腳注信息,這可不是一
31、個(gè)“制作精良”的表單。其實(shí)ColdFusion提供了好多方法可以更加靈活的對(duì)要寫(xiě)入Excel的數(shù)據(jù)進(jìn)行處理,包括添加表單屬性,設(shè)置格式,設(shè)置公式等等。為了演示這些功能,新建一個(gè)ColdFusion Page, decorate.cfm. 這里將再次用第一篇隨筆中那個(gè)造出來(lái)的數(shù)據(jù),如圖3.圖 3要完成這個(gè)Demo, 我們采用下面的步驟(有些步驟并不是必須的,當(dāng)然這些也可以不是所有的步驟)。步驟1把數(shù)據(jù)讀取到一個(gè)查詢中備用。實(shí)現(xiàn)方法是將下面的代碼添加到decorate.cfm. view source print?1<!- Read as query -> 2<cfspreads
32、heet 3 action="read"4 src="Sales.xls"5 query="myQuery">步驟2利用spreadsheetNew方法新建一個(gè)表單對(duì)象:view source print?1<!- Create new spreadsheet -> 2<cfset sObj=spreadsheetNew()>步驟3為這個(gè)新建的表單添加一些屬性信息:推薦
33、精選view source print?1<!- Set sheet properties -> 2<cfset info=StructNew()> 3<cfset info.title="Sales Detail"> 4<cfset info.author="spoony"> 5<cfset ments="comments for the sales detail sheet"> 6<cfset spreadsheetAddInfo(sObj, info)>步驟
34、4為表單添加一個(gè)標(biāo)題,并進(jìn)行以下修飾以便使它能與內(nèi)容區(qū)分出來(lái):view source print?1<!- Create and format header row -> 2<cfset spreadsheetAddRow(sObj, "Sales detail: ")> 3<cfset spreadsheetFormatRow(sObj, bold="true", italic="true", fontsize="12", 1)>步驟5將步驟1中獲取的數(shù)據(jù)填入到新建的表單對(duì)象中
35、:view source print?1<!- Add data from query -> 2<cfset spreadsheetAddRows(sObj, myQuery)> 3<cfset spreadsheetFormatRow(sObj, bold="true", alignment="center", 2)>步驟6定義一些變量以便以后使用。注意公式信息同Excel中語(yǔ)法是一致的:view source print?1<!- Figure out row for formula, 2 afer data
36、 -> 2<cfset rowDataStart=2> 3<cfset rowDataEnd=myQuery.recordcount+1> 4<cfset rowTotal=rowDataEnd+2> 推薦精選5<cfset totalFormulaB="SUM(B#rowDataStart#:B#rowDataEnd#)"> 6<cfset totalFormulaC="SUM(C#rowDataStart#:C#rowDataEnd#)"> 7<cfset totalFormulaD="SUM(D#rowDataStart#:D#rowDataEnd#)"> 8<cfset totalFormulaE="SUM(E#rowDataStart#:E#rowDataEnd#)">步驟7設(shè)置匯總單元格,并應(yīng)用步驟6中的公式計(jì)算:view source print?1<!- Add total formula -> 2<cfset spreadsheetSetCellValue(sObj, &q
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版機(jī)械行業(yè)科技創(chuàng)新合作合同書(shū)3篇
- 二零二五版藝術(shù)品字畫(huà)購(gòu)銷(xiāo)與倉(cāng)儲(chǔ)管理合同2篇
- 二零二五版農(nóng)業(yè)用地土壤環(huán)境質(zhì)量調(diào)查委托合同3篇
- 二零二五版LED顯示屏安全防護(hù)與應(yīng)急響應(yīng)合同3篇
- 美容院商鋪?zhàn)赓U合同(2025版):美容院美容美體設(shè)備租賃及售后服務(wù)協(xié)議2篇
- 二零二五年綠色建筑空調(diào)系統(tǒng)設(shè)計(jì)與施工合同3篇
- 二零二五版廢舊設(shè)備買(mǎi)賣(mài)及環(huán)保處理合同2篇
- 二零二五版房地產(chǎn)投資合作三方買(mǎi)賣(mài)合同3篇
- 二零二五版二手車(chē)鑒定評(píng)估及轉(zhuǎn)讓合同3篇
- 2025年度不銹鋼太陽(yáng)能板安裝工程合同3篇
- GB/T 12914-2008紙和紙板抗張強(qiáng)度的測(cè)定
- GB/T 1185-2006光學(xué)零件表面疵病
- ps6000自動(dòng)化系統(tǒng)用戶操作及問(wèn)題處理培訓(xùn)
- 家庭教養(yǎng)方式問(wèn)卷(含評(píng)分標(biāo)準(zhǔn))
- 城市軌道交通安全管理課件(完整版)
- 線纜包覆擠塑模設(shè)計(jì)和原理
- TSG ZF001-2006 安全閥安全技術(shù)監(jiān)察規(guī)程
- 部編版二年級(jí)語(yǔ)文下冊(cè)《蜘蛛開(kāi)店》
- 鍋爐升降平臺(tái)管理
- 200m3╱h凈化水處理站設(shè)計(jì)方案
- 個(gè)體化健康教育記錄表格模板1
評(píng)論
0/150
提交評(píng)論