亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    ASP頁(yè)面將數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)生成到本地報(bào)表的解決方案


    Web系統(tǒng)的開發(fā)過程中,我們經(jīng)常會(huì)碰到一些這樣的需求。客戶要求將DB檢索出的數(shù)據(jù)導(dǎo)出,并下載到本地的Excel文件中,做成一定樣式的報(bào)表。這里我想通過一個(gè)實(shí)際的例子,講講我們是如何在ASP中實(shí)現(xiàn)這一需求的。 

     

      

    一、下載處理中,CSV文件生成和Excel模板拷貝的實(shí)現(xiàn)代碼如下:

     1、上圖為數(shù)據(jù)檢索頁(yè)面,檢索的數(shù)據(jù)一覽顯示。并且在該頁(yè)面中將檢索用的sql文保存在
    Session(“strEXCELSQL”)中。

    2、點(diǎn)擊Excel export按鈕,提交到下面的下載頁(yè)面。

    3、現(xiàn)在頁(yè)面重新進(jìn)行數(shù)據(jù)庫(kù)檢索,生成CSV數(shù)據(jù)文件。代碼如下:
    <%
    ‘變量定義
    Dim fso, Fld, delf, tmpf, fmd, today

    ‘創(chuàng)建文件處理對(duì)象
    set fso = CreateObject(“Scripting.FileSystemObject”)
    ‘對(duì)應(yīng)web服務(wù)器csv目錄
    set Fld = fso.GetFolder(Server.MapPath(“csv”))
    set delf = Fld.Files
    ‘將web服務(wù)器csv目錄中當(dāng)天以前的所有文件刪除。
    For Each tmpf in delf
     fmd = tmpf.DateLastModified
     today = date()
     if(year(fmd) < year(today)) then
      tmpf.delete
     elseif(month(fmd) < month(today)) then
      tmpf.delete
     elseif(day(fmd) < day(today)) then
      tmpf.delete
     end if
    next
    ‘對(duì)應(yīng)web服務(wù)器Excel下載目錄
    set Fld = fso.GetFolder(Server.MapPath(“excel_download”))
    set delf = Fld.Files
    ‘將web服務(wù)器Excel下載目錄中當(dāng)天以前的所有文件刪除。
    For Each tmpf in delf
     fmd = tmpf.DateLastModified
     today = date()
     if(year(fmd) < year(today)) then
      tmpf.delete
     elseif(month(fmd) < month(today)) then
      tmpf.delete
     elseif(day(fmd) < day(today)) then
      tmpf.delete
     end if
    next

    ‘變量定義
    Dim rsPtn, strTitle, PtnNo
    Dim rsData
    Dim rsData_numRows
    Dim csvFilePath, strFileNm
    Dim strSelectSQL
    Dim tempof, f1, csvfile
    Dim csvLine, lngLineCnt
    Dim i
    Dim nowTime, strH, strM, strS
    Dim strDateBuf
    Dim strCol
    Dim strOwner

    ‘當(dāng)前時(shí)間的取得
    nowTime = Time()
    strH = Hour(nowTime)
    if(0 <= strH and strH <= 9) then
     strH = “0” & CStr(strH)
    end if
    strM = Minute(nowTime)
    if(0 <= strM and strM <= 9) then
     strM = “0” & CStr(strM)
    end if
    strS = Second(nowTime)
    if(0 <= strS and strS <= 9) then
     strS = “0” & CStr(strS)
    end if

    ‘檢索頁(yè)面設(shè)定的SQL文取得
    strSelectSQL = Session(“strEXCELSQL”)
    ‘?dāng)?shù)據(jù)庫(kù)訪問
    Set rsData = Server.CreateObject(“ADODB.Recordset”)
    rsData.ActiveConnection = CONNECT_STRING
    rsData.Source = strSelectSQL
    rsData.CursorType = 0
    rsData.CursorLocation = 2
    rsData.LockType = 1
    rsData.Open()
    rsData_numRows = 0
    ‘CSV文件名生成‘Excel_ +用戶ID+時(shí)+分+秒
    strFileNm = “Excel_” & Session.SessionID & strH & strM & strS
    csvFilePath = Server.MapPath(“csv”) & “” & strFileNm & “.csv”
    ‘文件存在性的判斷
    If(fso.FileExists(csvFilePath) = false) then
     ‘打開文件
      Set csvfile = fso.OpentextFile(csvFilePath, 2, True)
     lngLineCnt = 0
     ‘循環(huán)數(shù)據(jù)集,將數(shù)據(jù)寫入CSV文件
     Do While rsData.EOF = false
      ‘Excel 最大行數(shù)超過
      If lngLineCnt > 65535 Then Exit Do
      csvLine = “”
      For i = 0 To rsData.Fields.Count-1
       csvLine = csvLine & rsData.Fields.Item(i).Value & “,”
      Next
      csvLine = Left(csvLine, len(csvLine)-1)
      csvfile.WriteLine( “””*””,” & csvLine )
      lngLineCnt = lngLineCnt + 1
      rsData.MoveNext
     Loop
    End if
    ‘Excel模板文件生成
    dim f2
    set f2 = fso.getfile(Server.MapPath(“templatestemplate1.xls”))
    if(fso.FileExists(Server.MapPath(“excel_download”) & “” & strFileNm & “.xls”) = false) then
     ‘文件從web服務(wù)器的templates目錄拷貝到excel_download目錄
     ‘文件名與CSV文件名相同。
     f2.copy(Server.MapPath(“excel_download”) & “” & strFileNm & “.xls”)
    end if

    rsData.Close()
    Set rsData = Nothing
    %>

     

     

    分享到: 更多

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)