明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

asp完成在web中顯示電子表格數(shù)據(jù)(二)生成HTML表格

[摘要]過程的最后一步是格式化數(shù)據(jù)并顯示,就是建立一個HTML輸出,步驟如下:依次循環(huán)記錄集(Recordset)中每一個字段(Field),寫標題 依次循環(huán)記錄集和每一個字段,寫數(shù)值    例程代碼將整個的HTML表格組合為一個長字符串,最后輸出到HTML頁面。字符串初始化為如下值:DataTable ...
過程的最后一步是格式化數(shù)據(jù)并顯示,就是建立一個HTML輸出,步驟如下:

依次循環(huán)記錄集(Recordset)中每一個字段(Field),寫標題
依次循環(huán)記錄集和每一個字段,寫數(shù)值
   例程代碼將整個的HTML表格組合為一個長字符串,最后輸出到HTML頁面。字符串初始化為如下值:

DataTable = "< table >< tr >"

   電子數(shù)據(jù)表的列的必要信息由記錄集對象的Field集合產(chǎn)生,它包括了一系列字段對象,可以使用它們的Name屬性建立標題行。

For Each oField in oRs.Fields
    DataTable = DataTable & "< th >" & oField.Name & "< /th >"
Next
DataTable = DataTable & "< /tr >"

   最新打開的記錄集(recordset)自動將初始位置指向第一行,使用MoveNext方法移動記錄指針,順序存取每一行,直到整個記錄集的末尾。當?shù)接涗浖┪矔r,屬性Eof的值變成True,循環(huán)結(jié)束。在循環(huán)中,通過字段集合的列舉以及對應的Value屬性,從而達到單元格數(shù)據(jù)的存取。

Do While Not oRs.EOF
    DataTable = DataTable & "< tr >"

    For Each oField in oRs.Fields
        DataTable = DataTable & "< td >" & oField.Value & "< /td >"
    Next

    DataTable = DataTable & "< /tr >"
    oRs.MoveNext
Loop

   最后,加上HTML的表格結(jié)束標記,輸出整個字符串到頁面,形成了動態(tài)產(chǎn)生的表格。由于記錄集對象不再需要,所以要釋放它。

DataTable = DataTable & "< /table >"
Set oRs = Nothing

Response.Write DataTable

   在總結(jié)前,有必要說明一個小的定義在電子數(shù)據(jù)表是如何解釋的。

   通常,在ADO中將一定范圍內(nèi)的第一行解釋為一套列標題,盡管在ODBC中有明文定義的選項可以禁止這種解釋,但我也不愿意在ADO中這么做。如果第一行包含數(shù)字信息,那么ADO中將返回通用的字段名,比如:F1,F2,等等...,這樣就不能看到數(shù)字的值。而且,ADO也會將第一行中的“非字母、非數(shù)字”字符替換為符號#。