ASP操作Excel技術總結

          ASP操作Excel技術總結
          www.firnow.com    時間 : 2007-10-21  作者:佚名   編輯:本站 點擊:  135 [ 評論 ]
          -
          -
          綜合 資源 電子書 社區   ASP操作Excel技術總結
           
          目錄
          一、  環境配置
          二、  ASP對Excel的基本操作
          三、  ASP操作Excel生成數據表
          四、  ASP操作Excel生成Chart圖
          五、  服務器端Excel文件瀏覽、下載、刪除方案
          六、  附錄

          正文
          一、  環境配置
          服務器端的環境配置從參考資料上看,微軟系列的配置應該都行,即:
          1.Win9x+PWS+Office
          2.Win2000 Professional+PWS+Office
          3.Win2000 Server+IIS+Office
          目前筆者測試成功的環境是后二者。Office的版本沒有特殊要求,考慮到客戶機配置的不確定性和下兼容特性,建議服務器端Office版本不要太高,以防止客戶機下載后無法正確顯示。
          服務器端環境配置還有兩個偶然的發現是:
          1.  筆者開發機器上原來裝有金山的WPS2002,結果Excel對象創建始終出現問題,卸載WPS2002后,錯誤消失。
          2.  筆者開發ASP代碼喜歡用FrontPage,結果發現如果FrontPage打開(服務器端),對象創建出現不穩定現象,時而成功時而不成功。擴展考察后發現,Office系列的軟件如果在服務器端運行,則Excel對象的創建很難成功。
          服務器端還必須要設置的一點是COM組件的操作權限。在命令行鍵入“DCOMCNFG”,則進入COM組件配置界面,選擇Microsoft Excel后點擊屬性按鈕,將三個單選項一律選擇自定義,編輯中將Everyone加入所有權限。保存完畢后重新啟動服務器。
          客戶端的環境配置沒發現什么特別講究的地方,只要裝有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    (筆者測試時保存成功,頁面報錯。)
          6、  退出Excel操作
          objExcelApp.Quit  一定要退出
          set objExcelApp = Nothing

          三、  ASP操作Excel生成數據表
          1、  在一個范圍內插入數據
          objExcelSheet.Range("B3:k3").Value = Array("67", "87", "5", "9", "7", "45", "45", "54", "54", "10")
          2、  在一個單元格內插入數據
          objExcelSheet.Cells(3,1).Value="Internet Explorer"
          3、  選中一個范圍
          4、  單元格左邊畫粗線條
          5、  單元格右邊畫粗線條
          6、  單元格上邊畫粗線條
          7、  單元格下邊畫粗線條
          8、  單元格設定背景色
          9、  合并單元格
          10、  插入行
          11、  插入列

          四、  ASP操作Excel生成Chart圖
          1、  創建Chart圖
          objExcelApp.Charts.Add
          2、  設定Chart圖種類
          objExcelApp.ActiveChart.ChartType = 97
          注:二維折線圖,4;二維餅圖,5;二維柱形圖,51
          3、  設定Chart圖標題
          objExcelApp.ActiveChart.HasTitle = True
          objExcelApp.ActiveChart.ChartTitle.Text = "A test Chart"
          4、  通過表格數據設定圖形
          objExcelApp.ActiveChart.SetSourceData objExcelSheet.Range("A1:k5"),1
          5、  直接設定圖形數據(推薦)
          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、  顯示數據表
          objExcelApp.ActiveChart.HasDataTable = True
          8、  顯示圖例
          objExcelApp.ActiveChart.DataTable.ShowLegendKey = True

          五、  服務器端Excel文件瀏覽、下載、刪除方案
          瀏覽的解決方法很多,“Location.href=”,“Navigate”,“Response.Redirect”都可以實現,建議用客戶端的方法,原因是給服務器更多的時間生成Excel文件。
          下載的實現要麻煩一些。用網上現成的服務器端下載組件或自己定制開發一個組件是比較好的方案。另外一種方法是在客戶端操作Excel組件,由客戶端操作服務器端Excel文件另存至客戶端。這種方法要求客戶端開放不安全ActiveX控件的操作權限,考慮到通知每個客戶將服務器設置為可信站點的麻煩程度建議還是用第一個方法比較省事。
          刪除方案由三部分組成:
          A:  同一用戶生成的Excel文件用同一個文件名,文件名可用用戶ID號或SessionID號等可確信不重復字符串組成。這樣新文件生成時自動覆蓋上一文件。
          B:  在Global.asa文件中設置Session_onEnd事件激發時,刪除這個用戶的Excel暫存文件。
          C:  在Global.asa文件中設置Application_onStart事件激發時,刪除暫存目錄下的所有文件。
          注:建議目錄結構 \Src 代碼目錄 \Templet 模板目錄 \Temp 暫存目錄

          六、  附錄
          出錯時Excel出現的死進程出現是一件很頭疼的事情。在每個文件前加上“On Error Resume Next”將有助于改善這種情況,因為它會不管文件是否產生錯誤都堅持執行到“Application.Quit”,保證每次程序執行完不留下死進程。

           


          以上摘自  http://blog.sendsong.cn

           

          文章出處:飛諾網(www.firnow.com):http://dev.firnow.com/course/4_webprogram/asp/aso_js/20071021/78720.html

          posted on 2010-10-29 09:19 aiaiwoo 閱讀(265) 評論(0)  編輯  收藏 所屬分類: ASP/Visual Basic

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 黄陵县| 荆州市| 杭锦旗| 绿春县| 乌鲁木齐县| 和田市| 五家渠市| 班戈县| 东至县| 平昌县| 称多县| 肃宁县| 闽清县| 郸城县| 剑阁县| 文昌市| 濮阳县| 长春市| 衡阳市| 闽侯县| 富蕴县| 且末县| 南部县| 大余县| 甘孜| 郁南县| 沂源县| 武乡县| 潜江市| 泰顺县| 田东县| 安庆市| 施秉县| 吉林市| 东安县| 天柱县| 迁西县| 鹤岗市| 青田县| 嘉善县| 温州市|