亚洲第一国产综合野狼_中文字幕有码~第一页_一级少妇精品久久久久久久_亚洲中文字幕永久在线不卡

<style id="jhwmm"></style>
  1. <object id="jhwmm"><tt id="jhwmm"><noscript id="jhwmm"></noscript></tt></object>
    <pre id="jhwmm"></pre>
        <dfn id="jhwmm"><mark id="jhwmm"><legend id="jhwmm"></legend></mark></dfn>
        <address id="jhwmm"></address>
      1. <sup id="jhwmm"></sup>

            站內(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中繪制圖形提供了靈活的同時也是最基本的機(jī)制。在一個intranet環(huán)境中,如果可以假設(shè)客戶機(jī)上存在特定的瀏覽器和一些功能強(qiáng)大的軟件(如IE5和Office 2000),那么就有能力利用Office Web組件提供一個交互式圖形開發(fā)環(huán)境。這種模式下,客戶端工作站將在整個任務(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 "在保存過程中有錯誤!" 

            End If 

            Set objExcel = Nothing 

            objRS.Close 

            Set objRS = Nothing 

            %>   

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

            注意:兩個函數(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)頁中顯示出來,同時,加上下一句即可把EXCEL表在客客戶端顯示。 

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

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

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

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

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

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

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

              如果您把瀏覽器配置為將您的電子表格軟件與文本(TXT)/逗號分隔文件(CSV) 相關(guān)聯(lián),當(dāng)您下載該文件時,該文件將自動打開。下載下來后,如果本地已安裝EXCEL,點(diǎn)擊此文件,即可自動用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)境配置還有兩個偶然的發(fā)現(xiàn)是: 

            1.筆者開發(fā)機(jī)器上原來裝有金山的WPS2002,結(jié)果Excel對象創(chuàng)建始終出現(xiàn)問題,卸載WPS2002后,錯誤消失。 
            2.筆者開發(fā)ASP代碼喜歡用FrontPage,結(jié)果發(fā)現(xiàn)如果FrontPage打開(服務(wù)器端),對象創(chuàng)建出現(xiàn)不穩(wěn)定現(xiàn)象,時而成功時而不成功。擴(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)擊屬性按鈕,將三個單選項(xiàng)一律選擇自定義,編輯中將Everyone加入所有權(quán)限。保存完畢后重新啟動服務(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者測試時保存成功,頁面報錯。)

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

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

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

            3、選中一個范圍 

            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ù)器更多的時間生成Excel文件。 

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

              刪除方案由三部分組成: 

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

              六、附錄 

              出錯時Excel出現(xiàn)的死進(jìn)程出現(xiàn)是一件很頭疼的事情。在每個文件前加上“On Error Resume Next”將有助于改善這種情況,因?yàn)樗鼤还芪募欠癞a(chǎn)生錯誤都堅(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)
            ·插入記錄后馬上得到自動編號值(Access庫) (2009-4-17 9:54:33)
            ·全面解決--如何獲得剛插入數(shù)據(jù)庫的記錄的 (2009-4-17 9:53:29)
            ·ASP計(jì)算兩個時間之差的函數(shù) (2009-4-17 9:52:11)
            ·一個通用數(shù)據(jù)庫顯示程序,能調(diào)任意庫,任意 (2009-4-17 9:50:33)
            ·技巧:ASP開發(fā)中存儲過程應(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布局方法的十八般技巧和兼容方案