




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Adobe ColdFusion讀寫Microsoft Office Excel數(shù)據(jù) Adobe公司最新推出的ColdFusion9新增了很多令人興奮地功能,這些功能具體體現(xiàn)在新出現(xiàn)的標簽(Tag)上。比如,與微軟Office文件的互操作性(CFSPREADSHEET),與其最新開發(fā)工具ColdFusion Builder的緊密集成,對象-關(guān)系映射(ORM),與微軟Office SharePoint的集成(CFSHAREPOINT),ColdFusion作為服務,Adobe AIR本地/遠程數(shù)據(jù)庫同步,服務管理器以及對門戶標準的嵌入支持等。筆者這幾篇隨筆簡單介紹下ColdFusion9與Exc
2、el的交互操作。首先做一下準備工作,安裝ColdFusion9和ColdFusion Builder, 添加ColdFusion Server并且配置好相關(guān)數(shù)據(jù)源。從CFBuilder中RDS Dateview觀測自帶的示例數(shù)據(jù)庫可以驗證連接正常。如圖1.圖 1 然后還需要一個示例Excel文件Sales.xls。不妨隨意造些數(shù)據(jù),如圖2. 推薦精選圖 2接著新建ColdFusion Project,姑且命名為MyFirstCFPjt, 從項目中添加一個文件夾spreadsheet。從新建的spre
3、adsheet中添加一個新的ColdFusion Page,由于要先做一個讀取操作的Demo, 因此將其命名為read.cfm. 具體代碼很簡單,只需要將下面的寫到新建的read.cfm中即可用內(nèi)置的瀏覽器進行瀏覽操作了。 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ù)讀取到一個query中。然后可以在程序其他地方應用這個query中的數(shù)據(jù)。cfdump標簽用來將特定的ColdFusion對象的詳細信息展示出來。在CFBuilder內(nèi)置的IE瀏覽器中效果如圖3.圖 3 自然,我們也可以以一種開發(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; 要想獲取某個特定單元格中的數(shù)據(jù)并將其放入特定變量,利用上面提到的查詢方式很容易實現(xiàn),但CF9提供了一種更加簡便的方式,只需要設(shè)置cfspreadsheet標簽的rows和columns屬性即可。將下面代碼放入read.cfm, 在瀏覽器中瀏覽。此時要注意設(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ù)了。推薦精選上一篇隨筆主要簡單演示了數(shù)據(jù)讀取操作,要想編輯Excel中數(shù)據(jù)的功能也很容易實現(xiàn)。代碼幾乎同讀取操作一樣,顯著的不同是要將cfspreadsheet標簽的action屬性設(shè)置為write,設(shè)定所要編輯的單元格位置信息并且調(diào)用spreadsheetSetCellValue方法進行編輯。我們繼續(xù)使用上一篇隨筆中的那個示例Excel文件Sales.x
15、ls, 如圖1.圖 1 注意這個文件第2行第2列的數(shù)字現(xiàn)在是“50000”。新建一個ColdFusion Page, 并將下面的代碼添加進去。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">推薦精選 在瀏覽器中運行。然后再次打開Sales.xls文件。可以發(fā)現(xiàn)第2行第2列數(shù)據(jù)已經(jīng)變成了“60000”。如圖2.圖 2前面的示例用了最簡單的方式介紹了用ColdFusion編輯Excel文件的方式。為了使操作更加靈活方便,筆者再來演示一個稍微復雜的例子。首先新建一個ColdFusion Page, 與第一篇隨筆對應,取名為write.cfm. 添加下面的代碼用來新建一個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; 在瀏覽器中運行一下,看到效果如圖3, 其外觀與普通html form沒有什么區(qū)別。推薦精選圖 3接下來在頁面頂部定義三個變量,分別用來表示要設(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="">最后添加前面講過的讀寫方法,來實現(xiàn)對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>這樣,就可以對特定的單元格的數(shù)據(jù)進行編輯了。推薦精選在實際應用中,除了對已有Excel表單進行讀寫操作外,我們很有可能會需要將系統(tǒng)數(shù)據(jù)導出到Excel文件。導出Excel實質(zhì)上是利用現(xiàn)有的數(shù)據(jù)新建一個Excel文件。ColdFusion9很容易實現(xiàn)這個功能。下面筆者將
28、通過小示例來演示一下。首先新建一個ColdFusion Page, create.cfm. 將下面的代碼添加進去。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標簽的datasource屬性為安裝ColdFusion9時自帶的示例數(shù)據(jù)源,cfartgallery. 利用ColdFusion Buil
30、der的RDS Query Viewer可以對其中數(shù)據(jù)進行查看,先來看一下ART表中的數(shù)據(jù),如圖1. 推薦精選圖 1從代碼中可以看出其功能是將ART表中的內(nèi)容讀入到arts查詢中,然后寫入到一個新的Excel文件Arts.xls. overwrite=”true”保證如果Excel表單不存在則創(chuàng)建,存在則覆蓋。在瀏覽器中運行,可以看到當前目錄下多了一個Excel文件,效果如圖2. 圖 2推薦精選上面的示例僅僅是將數(shù)據(jù)庫中的數(shù)據(jù)通過ColdFusion查詢寫入到一個新的Excel表單中。這是最原始的方法,其中并沒有在意新建的Excel表單的美觀程度,也沒有我們很想要的匯總等等腳注信息,這可不是一
31、個“制作精良”的表單。其實ColdFusion提供了好多方法可以更加靈活的對要寫入Excel的數(shù)據(jù)進行處理,包括添加表單屬性,設(shè)置格式,設(shè)置公式等等。為了演示這些功能,新建一個ColdFusion Page, decorate.cfm. 這里將再次用第一篇隨筆中那個造出來的數(shù)據(jù),如圖3.圖 3要完成這個Demo, 我們采用下面的步驟(有些步驟并不是必須的,當然這些也可以不是所有的步驟)。步驟1把數(shù)據(jù)讀取到一個查詢中備用。實現(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方法新建一個表單對象:view source print?1<!- Create new spreadsheet -> 2<cfset sObj=spreadsheetNew()>步驟3為這個新建的表單添加一些屬性信息:推薦
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為表單添加一個標題,并進行以下修飾以便使它能與內(nèi)容區(qū)分出來: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ù)填入到新建的表單對象中
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中語法是一致的: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è)置匯總單元格,并應用步驟6中的公式計算:view source print?1<!- Add total formula -> 2<cfset spreadsheetSetCellValue(sObj, &q
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字貨幣對2025年金融行業(yè)信用體系的影響與對策報告
- 建筑行業(yè)農(nóng)民工權(quán)益保障與2025年用工模式創(chuàng)新政策研究分析報告
- 早期吞咽康復
- 膝關(guān)節(jié)置換術(shù)后護理及注意事項
- 車工工藝與技能訓練(第二版)課件:車多線螺紋
- 胸外科疾病術(shù)后護理常規(guī)
- 2025年工業(yè)互聯(lián)網(wǎng)平臺量子通信技術(shù)在智能農(nóng)業(yè)領(lǐng)域的應用預研報告
- 2025年零售行業(yè)數(shù)字化供應鏈協(xié)同與供應鏈金融風險管理策略研究與發(fā)展趨勢報告
- 交通設(shè)備制造業(yè)數(shù)字化轉(zhuǎn)型對勞動力市場的影響分析報告
- 神經(jīng)外科躁動病人的護理
- 收購爛尾樓可行性研究報告
- 2025年保密觀知識競賽題庫及答案(各地真題)含答案詳解
- 2025年下半年度蘇州城際鐵路限公司管理崗位公開招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 中國成人呼吸系統(tǒng)疾病家庭氧療指南(2024年)解讀課件
- 農(nóng)產(chǎn)品短視頻營銷試題及答案
- GB/T 12008.7-2025塑料聚氨酯生產(chǎn)用聚醚多元醇第7部分:堿性物質(zhì)含量的測定
- 漢中漢源電力招聘試題及答案
- 駐外員工報銷管理制度
- 《送元二使安西》教學課件-d教學
- 2025屆廣東省中山六校高三二模語文試題(含答案與解析)
- 智能建造基礎(chǔ)考試題及答案
評論
0/150
提交評論