利用ASP將HTML格式數(shù)據(jù)傳輸給Excel 的技巧_ASP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:ASP快速開發(fā)方法之?dāng)?shù)據(jù)操作
      這是我自己的心得,給大家作個參考。 我的目的是讓開發(fā)變得簡單,盡可能少地考慮實現(xiàn)語句,更多地把精力用于思考業(yè)務(wù)邏輯。希望我的文章對大家有所啟發(fā)和幫助。 好吧,讓我們進入正題: 先

      學(xué)習(xí)如何建立ASP頁面將HTML數(shù)據(jù)流傳送到Execl電子表格,并且在IE中顯示Execl電子表格。

      到目前為止,有好幾種方法可以使用ASP技術(shù)來創(chuàng)立Excel數(shù)據(jù)表格,你還可以利用服務(wù)器端Excel 8.0 VBA組件建立電子數(shù)據(jù)表。但是,某些情況下服務(wù)器可能無法處理所涉及到的信息量或無法承擔(dān)所形成的工作負(fù)載,因此你不得不犧牲某些為客戶機提供的處理性能。本文將主要討論有關(guān)客戶端的數(shù)據(jù)表格處理問題。Excel 97具有某些特別的性能可以象處理電子表格一樣處理HTML格式數(shù)據(jù)流,這一特別的處理能力僅在Excel 97或更高版本中才具有,而且用戶需要建立類似Excel電子表格數(shù)據(jù)流才能更有效的給以處理。

      那么,瀏覽器是否也具有類似功能呢?Internet Explorer(IE)3.0或更高版本能夠像Excel一樣顯示Microsoft Excel 工作表格, 前提是客戶機需要裝栽 Excel。 如果用戶打開IE瀏覽器并輸入Excel工作表格文件名做為URL,IE就會打開工作表。IE利用文件的擴展名以辨別是否是mime格式文件并啟動相應(yīng)的應(yīng)用程序, 當(dāng)IE處理Excel mime格式文件時,IE將該文件轉(zhuǎn)變?yōu)閍pplication/vnd.ms- excel并啟動Excel供用戶查看有關(guān)的表格數(shù)據(jù)。

      本文將討論如何建立ASP主頁,該主頁能夠?qū)TML數(shù)據(jù)流傳送給Excel電子數(shù)據(jù)表。 利用這一技術(shù)IE瀏覽器可以像Excel那樣顯示HTML數(shù)據(jù)表。在下面的例子當(dāng)中, ASP主頁將啟動一組件,該組件可以處理存儲在NWIND SQLSever 6.5中的雇員表記錄,同時將該表以HTML表格形式顯示。

      建立HTML表格
      首先建立ASP主頁,將該主頁添加到Visual InterDev項目中,文件名為ContentType.asp, 如同圖 A 。然后將代碼A所顯示的代碼添加到主頁中,第一行代碼可以將所涉及主頁的mime type轉(zhuǎn)變?yōu)镋xcel mime type。下面幾行代碼將啟動我們早先建立的組件以獲取ADOR記錄區(qū)的數(shù)據(jù)。 這些代碼如同ListingA中所顯示將在記錄區(qū)循環(huán)處理并建立一個HTML表格, 該表格包括雇員表中每行的記錄。

      代碼 A:Code for adding new ASP page to Visual InterDev Project
      <%@ Language=VBScript %>

      <%Response.ContentType = "application/vnd.ms-excel"%>

      <%
      Dim objEmployee, rs

      set objEmployee=server.CreateObject("EmpReport.Employee")

      Set rs = objEmployee.GetEmployee()

      'Draw a Table

      %>
      <TABLE>
      <TR>
      <TD><STRONG><FONT FACE="" size=4>Employee
      Report</FONT></STRONG></TD>
      </TR>
      <TR>
      <TD>Employee Id</TD>
      <TD>First Name</TD>
      <TD>Last Name</TD>
      <TD>Title</TD>
      </TR>
      <%
      Do while not rs.eof
      %>
      <TR>
      <TD>
      <%=rs("EmployeeId")%></TD>
      <TD>
      <%=rs("LastName")%></TD>
      <TD>
      <%=rs("FirstName")%></TD>
      <TD>
      <%=rs("Title")%></TD>
      </TR>
      <%
      rs.movenext
      loop
      %></TABLE>

      完成輸入代碼后, 保存并瀏覽該主頁。該主頁如同圖 B 。注意該電子表格中的所有行并未實行任何格式化處理。當(dāng)我們使用Excel VBA組件創(chuàng)立工作表格時,我們可以利用VBA方式對表格加以調(diào)整。 但是,在使用HTML方式下對表格加以通常的格式化處理是比較困難的,除非你能方便地顯示和讀取HTML表格的有關(guān)數(shù)據(jù)。利用ASP主頁技術(shù)我們能夠做到這一點,而且可以實現(xiàn)目前Microsoft Excel所支持的所有功能, 其中包括SUM功能。需要注意的是,利用HTML創(chuàng)立的工作表格中沒有包括一些標(biāo)準(zhǔn)的標(biāo)示符號,例如<HTML> 及<BODY>。當(dāng)我們建立與Excel工作表格互換數(shù)據(jù)的HTML表格時,盡量不要在ASP主頁中使用<HTML>,<BODY>,<HEAD>等標(biāo)示符號,因為Excel工作表格通常無法正確這些標(biāo)示符號。

      在HTML表格中使用標(biāo)準(zhǔn)的Excel功能
      Excel 97允許用戶利用Excel所具有的運算公式在HTML表格中實行標(biāo)準(zhǔn)的計算處理,例如使用total及sum等運算功能。利用這一特點的顯著優(yōu)勢是,將需要實行計算處理的工作表格移到客戶端處理從而極大的減少了對寶貴的服務(wù)器資源的占用,同時也減少了在服務(wù)器與客戶機之間實行信息傳遞的網(wǎng)絡(luò)負(fù)擔(dān)。例如圖 C 所示起名為sumit.asp的主頁的情況, 建立的HTML表格顯示了Excel工作表格中兩列的總和。 請注意代碼B中的代碼, 第一行代碼將表中的內(nèi)容格式轉(zhuǎn)變?yōu)镋xcel格式, 如此瀏覽器將得知是哪種類型的應(yīng)用程序在為HTML表格傳遞數(shù)據(jù)。我們建立了一個具有兩列的表格,第二列行中包括了兩組數(shù)值:2和3。第三行中的數(shù)值為前兩個數(shù)值的總和,這里使用的是Excel的=sum(b1:b2)計算功能。

      代碼 B: Code for creating an HTML table that displays sum of two columns in Excel worksheet

      <%@ Language=VBScript %>

      <%Response.ContentType = "application/vnd.ms-excel"%>

      <TABLE>
      <TR>
      <TD></TD>
      <TD><!-- Cell : B1 -->2</TD>
      </TR>
      <TR>
      <TD></TD>
      <TD><!--Cell : B2 -->3</TD>
      </TR>
      <TR>
      <TD><STRONG>Sum</STRONG></TD>
      <TD>=SUM(B1:B2)</TD>
      </TR>
      </TABLE>

      結(jié)論有好幾種不同的方式可以利用瀏覽器應(yīng)用程序顯示Excel工作表格。 具體使用哪一種方式要依照不同情況而定:你所要實行的數(shù)據(jù)處理是在客戶機上還是在服務(wù)器中? 在程序運行過程當(dāng)中是否需要多種的格式化處理? 最終用戶所使用的是否是IE瀏覽器?如果你的工作表格比較復(fù)雜而且十分重要,你最好是考慮建立一Excel模板,然后利用服務(wù)器端VBA COM將數(shù)值填入。 如果你的工作表格比較簡單或者只是在客戶機端運行處理,你可以考慮使用HTML數(shù)據(jù)流處理。另一方面,如果你的用戶使用的是Netscape Navigator瀏覽器,那么你的所有的數(shù)據(jù)處理必須在服務(wù)器端運行并使用COM VBA組件。

      分享:ASP實例:即時顯示當(dāng)前頁面瀏覽人數(shù)
      ASP實現(xiàn)即時顯示當(dāng)前頁面瀏覽人數(shù) online.asp文件 以下為引用的內(nèi)容: <!--#include file="dbconn.asp" --> <% onlineTimeout=10

      來源:模板無憂//所屬分類:ASP教程/更新時間:2008-08-22
      相關(guān)ASP教程