摘要:針對用Excel表格作統計分析報表時出現的弊端,本文利用ASP和數據庫技術對Excel原始數據進行導入、分析,從而得到滿足需求的報表。
關鍵詞:ASP;Excel;報表分析
中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2008)11-20347-02
1 引言
隨著信息時代的到來,我們的工作也日趨電子化,各種各樣的電子表格、數據、信息需要我們查閱、處理。快速有效的使用這些電子數據能提高我們的工作效率。Excel是微軟公司辦公自動化套件中的一個軟件,他主要是用來處理電子表格。Excel以其功能強大,界面友好等受到了許多用戶的歡迎,他通過匯總、篩選、函數等工具可以進行數據的提取、分析,從而得到匯總分析報表。但對于大量的數據、不同的需求,利用Excel來進行查詢、分項統計等,就比較繁瑣、效率也很低。
例如有一家通信類公司,每天需要統計裝機報表、業務報表,這幾個報表的原始數據都來源于一張每天累計和更新的受理記錄表(Excel表格,有受理號碼、派單時間、施工單位、市場單位、完工日期等)。裝機報表需要根據每家施工代維分類匯總,業務報表需要根據市場單位分類匯總,而且這兩個報表還要分別通過裝機時間、業務類型再分類。由于施工單位和市場單位比較多,統計人員每次在受理記錄表里需要反復篩選許多次,工作起來很枯燥而且效率很低。
考慮以上問題,我們提出設想:如果把Excel中的數據導入數據庫的話,就可以很輕松的實現這些功能。再通過ASP發布到網上就可以實現共享,統計速度會很快而且顯示報表更直觀。
具體步驟如下:
2 搭建ASP運行環境
以Windows 2000為例:安裝IIS服務器,新設站點、配置虛擬目錄。(圖1、圖2)
3 安裝SQl SERVER數據庫及配置
安裝sqlserver數據庫,配置數據源。(圖3)
4 連接數據庫
SqlLocalName =\"(local)\" '連接IP [ 本地用 (local) 外地用IP ]
SqlUsername =\"sa\" '用戶名
SqlPassword =\"123456\" '用戶密碼
SqlDatabaseName=\"test\" '數據庫名
ConnStr = \"Provider=Sqloledb;User ID=\" SqlUsername \"; Password=\" SqlPassword \"; Initial Catalog = \" SqlDatabaseName \"; Data Source=\" SqlLocalName \";\"
SqlNowString=\"GetDate()\"
set conn=server.createobject(\"ADODB.Connection\")
conn.open ConnStr
5 編寫把Excel表格導入數據庫的頁面
具體受理記錄報表如下:(圖4)
如果接受數據導入的表已經存在
insert into 表 select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:test.xls',sheet1$)
--如果導入數據并生成表
select * into 表 from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:test.xls',sheet1$)
6 利用sql語句把Excel的原始數據進行分組匯總(例如按照施工單位、市場單位)
sql1=\"select 施工單位,實裝數量=count(*) from phone2 where申請事項='新裝' and 回訪='已通' and 派單日期>='\" conclusion1 \"'and 派單日期<='\" conclusion2 \"'group by 施工單位\"
sql2=\"select 施工單位,待裝數量=count(*) from phone2 where申請事項='新裝' and 回訪 is 1 and 派單日期>='\" conclusion1 \"'and 派單日期<='\" conclusion2 \"'group by 施工單位\"
sql3=\"select 市場單位,受理數量=count(*) from phone2 where申請事項='新裝'and派單日期>='\" conclusion1 \"'and 派單日期<='\" conclusion2 \"' and group by 市場單位\"
set rs=conn.execute(sql)
set rs2=conn.execute(sql2)
set rs3=conn.execute(sql3)
if rs.eof then
response.write(\"沒有派單!\")
response.write(\"^_^!\")
response.end
end if
7 把匯總的數據在頁面上顯示
某公司07.3.1-07.3.15裝機報表(圖5)。
8 結束語
本例利用ASP技術把Excel表格數據導入數據庫,然后對數據庫進行分析、匯總,通過在WEB網頁上發布,可以使不同的用戶得到符合各自需求的報表。通過這種方法得到的分析報表,更加直觀、有效,也提高了工作效率。而且程序稍加修改,可以適應不同的用戶需求,程序通用性高,可以在報表分析工作中推廣。