亚洲49vv在线观看,欧美日韩亚洲中字一区,亚洲区一区二区三区,亚洲日本熟女视频

<bdo id="qa15n"><u id="qa15n"></u></bdo>

<legend id="qa15n"></legend>

  • <sup id="qa15n"><menu id="qa15n"></menu></sup>

      <th id="qa15n"></th>

      <legend id="qa15n"></legend>
    1. <small id="qa15n"><sup id="qa15n"></sup></small>

        站內(nèi)搜索  

        哈爾濱百姓網(wǎng)首頁 | 操作系統(tǒng) | 軟件應(yīng)用 | 平面設(shè)計(jì) | 程序開發(fā) | 硬件維護(hù) | 網(wǎng)絡(luò)安全
         您的位置: 哈爾濱百姓網(wǎng) > 電腦網(wǎng)絡(luò) > 程序開發(fā) > 閱讀文章:ASP導(dǎo)出Excel數(shù)據(jù)的四種方法
        ASP導(dǎo)出Excel數(shù)據(jù)的四種方法
        2009-4-17 9:42:14 哈爾濱百姓網(wǎng) 來源:百度空間 瀏覽 次 【 】【打印】【關(guān)閉

          一、使用OWC 

          什么是OWC? 

          OWC是Office Web Compent的縮寫,即Microsoft的Office Web組件,它為在Web中繪制圖形提供了靈活的同時(shí)也是最基本的機(jī)制。在一個(gè)intranet環(huán)境中,如果可以假設(shè)客戶機(jī)上存在特定的瀏覽器和一些功能強(qiáng)大的軟件(如IE5和Office 2000),那么就有能力利用Office Web組件提供一個(gè)交互式圖形開發(fā)環(huán)境。這種模式下,客戶端工作站將在整個(gè)任務(wù)中分擔(dān)很大的比重。 

        <% 

        Option Explicit 

        Class ExcelGen 

        Private objSpreadsheet 

        Private iColOffset 

        Private iRowOffset 

        Sub Class_Initialize() 

        Set objSpreadsheet = Server.CreateObject("OWC.Spreadsheet") 

        iRowOffset = 2 

        iColOffset = 2 

        End Sub 

        Sub Class_Terminate() 

        Set objSpreadsheet = Nothing "Clean up 

        End Sub 

        Public Property Let ColumnOffset(iColOff) 

        If iColOff > 0 then 

        iColOffset = iColOff 

        Else 

        iColOffset = 2 

        End If 

        End Property 

        Public Property Let RowOffset(iRowOff) 

        If iRowOff > 0 then 

        iRowOffset = iRowOff 

        Else 

        iRowOffset = 2 

        End If 

        End Property Sub GenerateWorksheet(objRS) 

        "Populates the Excel worksheet based on a Recordset"s contents 

        "Start by displaying the titles 

        If objRS.EOF then Exit Sub 

        Dim objField, iCol, iRow 

        iCol = iColOffset 

        iRow = iRowOffset 

        For Each objField in objRS.Fields 

        objSpreadsheet.Cells(iRow, iCol).Value = objField.Name 

        objSpreadsheet.Columns(iCol).AutoFitColumns 

        "設(shè)置Excel表里的字體 

        objSpreadsheet.Cells(iRow, iCol).Font.Bold = True 

        objSpreadsheet.Cells(iRow, iCol).Font.Italic = False 

        objSpreadsheet.Cells(iRow, iCol).Font.Size = 10 

        objSpreadsheet.Cells(iRow, iCol).Halignment = 2 "居中 

        iCol = iCol + 1 

        Next "objField 

        "Display all of the data 

        Do While Not objRS.EOF 

        iRow = iRow + 1 

        iCol = iColOffset 

        For Each objField in objRS.Fields 

        If IsNull(objField.Value) then 

        objSpreadsheet.Cells(iRow, iCol).Value = "" 

        Else 

        objSpreadsheet.Cells(iRow, iCol).Value = objField.Value 

        objSpreadsheet.Columns(iCol).AutoFitColumns 

        objSpreadsheet.Cells(iRow, iCol).Font.Bold = False 

        objSpreadsheet.Cells(iRow, iCol).Font.Italic = False 

        objSpreadsheet.Cells(iRow, iCol).Font.Size = 10 

        End If 

        iCol = iCol + 1 

        Next "objField 

        objRS.MoveNext 

        Loop 

        End Sub Function SaveWorksheet(strFileName) 



        "Save the worksheet to a specified filename 

        On Error Resume Next 

        Call objSpreadsheet.ActiveSheet.Export(strFileName, 0) 

        SaveWorksheet = (Err.Number = 0) 

        End Function 

        End Class 

        Dim objRS 

        Set objRS = Server.CreateObject("ADODB.Recordset") 

        objRS.Open "SELECT * FROM xxxx", "Provider=SQLOLEDB.1;Persist Security 

        Info=True;User ID=xxxx;Password=xxxx;Initial Catalog=xxxx;Data source=xxxx;" 

        Dim SaveName 

        SaveName = Request.Cookies("savename")("name") 

        Dim objExcel 

        Dim ExcelPath 

        ExcelPath = "Excel\" & SaveName & ".xls" 

        Set objExcel = New ExcelGen 

        objExcel.RowOffset = 1 

        objExcel.ColumnOffset = 1 

        objExcel.GenerateWorksheet(objRS) 

        If objExcel.SaveWorksheet(Server.MapPath(ExcelPath)) then 

        "Response.Write "<html><body bgcolor="gainsboro" text="#000000">已保存為Excel文件. 

        <a href="" & server.URLEncode(ExcelPath) & "">下載</a>" 

        Else 

        Response.Write "在保存過程中有錯(cuò)誤!" 

        End If 

        Set objExcel = Nothing 

        objRS.Close 

        Set objRS = Nothing 

        %>   

        二、用Excel的Application組件在客戶端導(dǎo)出到Excel或Word 

        注意:兩個(gè)函數(shù)中的“data“是網(wǎng)頁中要導(dǎo)出的table的 id 

        <input type="hidden" name="out_word" onclick="vbscript:buildDoc" value="導(dǎo)出到word" class="notPrint"> 

        <input type="hidden" name="out_excel" onclick="AutomateExcel();" value="導(dǎo)出到excel" class="notPrint">   



        導(dǎo)出到Excel代碼 

        <SCRIPT LANGUAGE="javascript"> 

        <!-- 

        function AutomateExcel() 



        // Start Excel and get Application object. 

        var oXL = new ActiveXObject("Excel.Application"); 

        // Get a new workbook. 

        var oWB = oXL.Workbooks.Add(); 

        var oSheet = oWB.ActiveSheet; 

        var table = document.all.data; 

        var hang = table.rows.length; 

        var lie = table.rows(0).cells.length; 



        // Add table headers going cell by cell. 

        for (i=0;i<hang;i++) 



        for (j=0;j<lie;j++) 



        oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText; 





        oXL.Visible = true; 

        oXL.UserControl = true; 



        //--> 

        </SCRIPT>   



        導(dǎo)出到Word代碼 

        <script language="vbscript"> 

        Sub buildDoc 

        set table = document.all.data 

        row = table.rows.length 

        column = table.rows(1).cells.length 

        Set objWordDoc = CreateObject("Word.Document") 

        objWordDoc.Application.Documents.Add theTemplate, False 

        objWordDoc.Application.Visible=True 

        Dim theArray(20,10000) 

        for i=0 to row-1 

        for j=0 to column-1 

        theArray(j+1,i+1) = table.rows(i).cells(j).innerTEXT 

        next 

        next 

        objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("綜合查詢結(jié)果集") //顯示表格標(biāo)題 



        objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("") 

        Set rngPara = objWordDoc.Application.ActiveDocument.Paragraphs(1).Range 

        With rngPara 

        .Bold = True //將標(biāo)題設(shè)為粗體 

        .ParagraphFormat.Alignment = 1 //將標(biāo)題居中 

        .Font.Name = "隸書" //設(shè)定標(biāo)題字體 

        .Font.Size = 18 //設(shè)定標(biāo)題字體大小 

        End With 

        Set rngCurrent = objWordDoc.Application.ActiveDocument.Paragraphs(3).Range 

        Set tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column) 



        for i = 1 to column 



        objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAfter theArray(i,1) 

        objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.ParagraphFormat.alignment=1 

        next 

        For i =1 to column 

        For j = 2 to row 

        objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAfter theArray(i,j) 

        objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.ParagraphFormat.alignment=1 

        Next 

        Next 

        End Sub 

        </SCRIPT>   

          三、直接在IE中打開,再存為EXCEL文件 

          把讀出的數(shù)據(jù)用<table>格式,在網(wǎng)頁中顯示出來,同時(shí),加上下一句即可把EXCEL表在客客戶端顯示。 

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

          注意:顯示的頁面中,只把<table>輸出,最好不要輸出其他表格以外的信息。 

          四、導(dǎo)出以半角逗號隔開的csv 

          用fso方法生成文本文件的方法,生成一個(gè)擴(kuò)展名為csv文件。此文件,一行即為數(shù)據(jù)表的一行。生成數(shù)據(jù)表字段用半角逗號隔開。(有關(guān)fso生成文本文件的方法,在此就不做介紹了) 

          CSV文件介紹 (逗號分隔文件) 

          選擇該項(xiàng)系統(tǒng)將創(chuàng)建一個(gè)可供下載的CSV 文件; CSV是最通用的一種文件格式,它可以非常容易地被導(dǎo)入各種PC表格及數(shù)據(jù)庫中。 

          請注意即使選擇表格作為輸出格式,仍然可以將結(jié)果下載CSV文件。在表格輸出屏幕的底部,顯示有 "CSV 文件"選項(xiàng),點(diǎn)擊它即可下載該文件。 

          如果您把瀏覽器配置為將您的電子表格軟件與文本(TXT)/逗號分隔文件(CSV) 相關(guān)聯(lián),當(dāng)您下載該文件時(shí),該文件將自動(dòng)打開。下載下來后,如果本地已安裝EXCEL,點(diǎn)擊此文件,即可自動(dòng)用EXCEL軟件打開此文件。 


        - 作者: shawnyoung 2006年05月12日, 星期五 15:29  回復(fù)(0) |  引用(0) 加入博采 

        [轉(zhuǎn)]ASP 操作EXCEL 總結(jié)  

          一、環(huán)境配置 

          服務(wù)器端的環(huán)境配置從參考資料上看,微軟系列的配置應(yīng)該都行,即: 

        1.Win9x+PWS+Office 
        2.Win2000 Professional+PWS+Office 
        3.Win2000 Server+IIS+Office 

          目前筆者測試成功的環(huán)境是后二者。Office的版本沒有特殊要求,考慮到客戶機(jī)配置的不確定性和下兼容特性,建議服務(wù)器端Office版本不要太高,以防止客戶機(jī)下載后無法正確顯示。
         
          服務(wù)器端環(huán)境配置還有兩個(gè)偶然的發(fā)現(xiàn)是: 

        1.筆者開發(fā)機(jī)器上原來裝有金山的WPS2002,結(jié)果Excel對象創(chuàng)建始終出現(xiàn)問題,卸載WPS2002后,錯(cuò)誤消失。 
        2.筆者開發(fā)ASP代碼喜歡用FrontPage,結(jié)果發(fā)現(xiàn)如果FrontPage打開(服務(wù)器端),對象創(chuàng)建出現(xiàn)不穩(wěn)定現(xiàn)象,時(shí)而成功時(shí)而不成功。擴(kuò)展考察后發(fā)現(xiàn),Office系列的軟件如果在服務(wù)器端運(yùn)行,則Excel對象的創(chuàng)建很難成功。 
          服務(wù)器端還必須要設(shè)置的一點(diǎn)是COM組件的操作權(quán)限。在命令行鍵入“DCOMCNFG”,則進(jìn)入COM組件配置界面,選擇Microsoft Excel后點(diǎn)擊屬性按鈕,將三個(gè)單選項(xiàng)一律選擇自定義,編輯中將Everyone加入所有權(quán)限。保存完畢后重新啟動(dòng)服務(wù)器。 

          客戶端的環(huán)境配置沒發(fā)現(xiàn)什么特別講究的地方,只要裝有Office和IE即可,版本通用的好象都可以。 

          二、ASP對Excel的基本操作 

        1、建立Excel對象 
        set objExcelApp = CreateObject("Excel.Application") 
        objExcelApp.DisplayAlerts = false    不顯示警告 
        objExcelApp.Application.Visible = false    不顯示界面 

        2、新建Excel文件 
        objExcelApp.WorkBooks.add 
        set objExcelBook = objExcelApp.ActiveWorkBook 
        set objExcelSheets = objExcelBook.Worksheets 
        set objExcelSheet = objExcelBook.Sheets(1) 

        3、讀取已有Excel文件 
        strAddr = Server.MapPath(".") 
        objExcelApp.WorkBooks.Open(strAddr & "\Templet\Table.xls") 
        set objExcelBook = objExcelApp.ActiveWorkBook 
        set objExcelSheets = objExcelBook.Worksheets 
        set objExcelSheet = objExcelBook.Sheets(1) 

        4、另存Excel文件 
        objExcelBook.SaveAs strAddr & "\Temp\Table.xls" 

        5、保存Excel文件 
        objExcelBook.Save   。üP者測試時(shí)保存成功,頁面報(bào)錯(cuò)。)

        6、退出Excel操作 
        objExcelApp.Quit  一定要退出 
        set objExcelApp = Nothing 

          三、ASP操作Excel生成數(shù)據(jù)表 

        1、在一個(gè)范圍內(nèi)插入數(shù)據(jù) 
        objExcelSheet.Range("B3:k3").Value = Array("67", "87", "5", "9", "7", "45", "45", "54", "54", "10") 
        2、在一個(gè)單元格內(nèi)插入數(shù)據(jù) 
        objExcelSheet.Cells(3,1).Value="Internet Explorer" 

        3、選中一個(gè)范圍 

        4、單元格左邊畫粗線條 

        5、單元格右邊畫粗線條 

        6、單元格上邊畫粗線條 

        7、單元格下邊畫粗線條 

        8、單元格設(shè)定背景色 

        9、合并單元格 

        10、插入行 

        11、插入列 

          四、ASP操作Excel生成Chart圖 

        1、創(chuàng)建Chart圖 
        objExcelApp.Charts.Add 

        2、設(shè)定Chart圖種類 
        objExcelApp.ActiveChart.ChartType = 97 
        注:二維折線圖,4;二維餅圖,5;二維柱形圖,51 

        3、設(shè)定Chart圖標(biāo)題 
        objExcelApp.ActiveChart.HasTitle = True 
        objExcelApp.ActiveChart.ChartTitle.Text = "A test Chart" 

        4、通過表格數(shù)據(jù)設(shè)定圖形 
        objExcelApp.ActiveChart.SetSourceData objExcelSheet.Range("A1:k5"),1 

        5、直接設(shè)定圖形數(shù)據(jù)(推薦) 
        objExcelApp.ActiveChart.SeriesCollection.NewSeries 
        objExcelApp.ActiveChart.SeriesCollection(1).Name = "=""333""" 
        objExcelApp.ActiveChart.SeriesCollection(1).Values = "={1,4,5,6,2}" 

        6、綁定Chart圖 
        objExcelApp.ActiveChart.Location 1 

        7、顯示數(shù)據(jù)表 
        objExcelApp.ActiveChart.HasDataTable = True 

        8、顯示圖例 
        objExcelApp.ActiveChart.DataTable.ShowLegendKey = True 

          五、服務(wù)器端Excel文件瀏覽、下載、刪除方案 

          瀏覽的解決方法很多,“Location.href=”,“Navigate”,“Response.Redirect”都可以實(shí)現(xiàn),建議用客戶端的方法,原因是給服務(wù)器更多的時(shí)間生成Excel文件。 

          下載的實(shí)現(xiàn)要麻煩一些。用網(wǎng)上現(xiàn)成的服務(wù)器端下載組件或自己定制開發(fā)一個(gè)組件是比較好的方案。另外一種方法是在客戶端操作Excel組件,由客戶端操作服務(wù)器端Excel文件另存至客戶端。這種方法要求客戶端開放不安全ActiveX控件的操作權(quán)限,考慮到通知每個(gè)客戶將服務(wù)器設(shè)置為可信站點(diǎn)的麻煩程度建議還是用第一個(gè)方法比較省事。 

          刪除方案由三部分組成: 

        A:  同一用戶生成的Excel文件用同一個(gè)文件名,文件名可用用戶ID號或SessionID號等可確信不重復(fù)字符串組成。這樣新文件生成時(shí)自動(dòng)覆蓋上一文件。 
        B:  在Global.asa文件中設(shè)置Session_onEnd事件激發(fā)時(shí),刪除這個(gè)用戶的Excel暫存文件。 
        C:  在Global.asa文件中設(shè)置Application_onStart事件激發(fā)時(shí),刪除暫存目錄下的所有文件。 
          注:建議目錄結(jié)構(gòu) \Src 代碼目錄 \Templet 模板目錄 \Temp 暫存目錄 

          六、附錄 

          出錯(cuò)時(shí)Excel出現(xiàn)的死進(jìn)程出現(xiàn)是一件很頭疼的事情。在每個(gè)文件前加上“On Error Resume Next”將有助于改善這種情況,因?yàn)樗鼤?huì)不管文件是否產(chǎn)生錯(cuò)誤都堅(jiān)持執(zhí)行到“Application.Quit”,保證每次程序執(zhí)行完不留下死進(jìn)程。 
        轉(zhuǎn)自:http://hi.baidu.com/ittd/blog/item/351b3adb9d9a5162d1164e5f.html
        [責(zé)任編輯:佚名]
         相關(guān)文章
        ·CSS布局方法的十八般技巧和兼容方案 (2009-11-13 17:14:48)
        ·利用Google給自己的網(wǎng)站加上投票功能 (2009-10-13 12:32:39)
        ·您試圖在此 Web 服務(wù)器上訪問 (2009-8-13 14:20:12)
        ·Asp偽靜態(tài)的實(shí)現(xiàn)及URL重寫-用ISAPI_Rewri (2009-8-6 15:07:08)
        ·巧用ASP腳本命令重啟服務(wù)器 (2009-8-6 15:05:39)
        ·Dreamweaver CS3網(wǎng)頁制作之CSS布局 (2009-7-1 16:07:45)
        ·網(wǎng)頁設(shè)計(jì)經(jīng)驗(yàn)和技巧總結(jié) (2009-7-1 16:03:12)
        ·網(wǎng)頁優(yōu)化必須做的26件事情 (2009-7-1 16:00:36)
        ·把數(shù)據(jù)庫結(jié)構(gòu)顯示出來的源代碼 (2009-4-17 9:55:16)
        ·插入記錄后馬上得到自動(dòng)編號值(Access庫) (2009-4-17 9:54:33)
        ·全面解決--如何獲得剛插入數(shù)據(jù)庫的記錄的 (2009-4-17 9:53:29)
        ·ASP計(jì)算兩個(gè)時(shí)間之差的函數(shù) (2009-4-17 9:52:11)
        ·一個(gè)通用數(shù)據(jù)庫顯示程序,能調(diào)任意庫,任意 (2009-4-17 9:50:33)
        ·技巧:ASP開發(fā)中存儲(chǔ)過程應(yīng)用全接觸 (2009-4-17 9:48:31)
        ·網(wǎng)站簡體繁體轉(zhuǎn)換代碼 (2009-4-17 9:44:15)
        ·利用網(wǎng)頁監(jiān)聽,實(shí)現(xiàn)內(nèi)容中的圖片由滾輪控 (2009-4-17 9:37:21)
        ·html操作本地?cái)?shù)據(jù)庫 (2009-4-17 9:33:18)
        ·Access中使用Create Procedure創(chuàng)建 (2009-4-17 9:31:08)
        ·asp實(shí)現(xiàn)同網(wǎng)站不同目錄綁定不同域名 (2009-4-17 9:27:57)
         熱門文章 哈爾濱電腦
        ·安全防護(hù)策略-打造堡壘主機(jī)
        ·SQL Server到底需要使用哪些端口?
        ·把重要的Word 2003文檔放到菜單中
        ·您試圖在此 Web 服務(wù)器上訪問的 
        ·Photoshop制作火焰的神龍
        ·Win2003架設(shè)多用戶隔離Ftp服務(wù)器
        ·XP系統(tǒng)服務(wù)恢復(fù)批處理
        ·還有2天發(fā)布 Windows7必備77條小知識
        ·情侶玩兒法:用虛擬硬盤打造堅(jiān)不可摧的影子系統(tǒng)
        ·用U盤當(dāng)鑰匙 輕松繞過WinXP的登陸密碼
        ·Photoshop打造漂亮的心形掛鏈壁紙
         推薦文章 哈爾濱電腦
        ·精簡節(jié)約!小公司辦公打印省錢全攻略
        ·CSS布局方法的十八般技巧和兼容方案
        ·三種方法 教你解決輸入法不顯示的問題
        ·當(dāng)紅情侶QQ表情:茉莉和龍井
        ·Win 7出現(xiàn)休眠Bug 微軟提供解決方案
        ·將Powerpoint文檔轉(zhuǎn)換為Word文檔
        ·非常實(shí)用來學(xué)習(xí)連續(xù)供墨系統(tǒng)入門知識
        ·怕吃虧?怕假的?鑒別真假耗材的小竅門
        ·情侶玩兒法:用虛擬硬盤打造堅(jiān)不可摧的影子系統(tǒng)
        ·開始—運(yùn)行(cmd)命令大全
        ·您試圖在此 Web 服務(wù)器上訪問的 
         最新文章 哈爾濱電腦
        ·Web服務(wù)器如何避免CC攻擊
        ·SQL Server到底需要使用哪些端口?
        ·XP系統(tǒng)服務(wù)恢復(fù)批處理
        ·局域網(wǎng)遭ARP攻擊網(wǎng)絡(luò)掉線批處理
        ·CISCO 2811 路由器配置命令全集
        ·避免“悲劇” 打印機(jī)使用技巧全面攻略
        ·保障遠(yuǎn)程桌面Web連接安全四項(xiàng)注意
        ·教你六招處理服務(wù)器數(shù)據(jù)意外丟失
        ·挑選相紙有學(xué)問 教你如何辨別相紙優(yōu)劣
        ·精簡節(jié)約!小公司辦公打印省錢全攻略
        ·CSS布局方法的十八般技巧和兼容方案