程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> jsp和excel的數據交換-----我的項目實踐

jsp和excel的數據交換-----我的項目實踐

編輯:關於JSP

前段時間,客戶要求我們的系統可以實現與ms excel的數據交換,可以把系統中的數據導入導出到excel.我們的系統是一個用java做的b/s結構的MIS系統.為了解決這個
問題,我找到了一個專門操作excel的開源項目jxl,並找到了一篇介紹如何使用jxl開發包的好文章:
--http://www-900.cn.ibm.com/developerWorks/cn/java/l-javaExcel/#2
根據客戶的要求,用jxl實現了如下功能:
1:在客戶端讀取excel文件的數據;
2:把系統數據導出到excel模板文件中.
對於第一個問題,我開始考慮的是寫一個客戶端運行的applet小程序.後來才明白,java為了安全,applet是不能隨便訪問客戶端的文件系統的(:(低級錯誤!不要鄙視我).
於是就想到了先把excel文件上傳到服務器,然後用jxl來解析數據.怎麼上傳文件我就不說了,只要做過jsp(SUN企業級應用的首選)的人應該都知道吧.主要講一下如何解析.由於上傳的數據都是
有固定格式的,所以我們做了一個excel模板,客戶必須按照模板的格式填寫數據,程序才可以正常的解析.
解析其實也是很簡單的,但在做的過程中發現,excel中的時間格式數據需要特別注意:如果按照文本格式讀取時間格式數據,讀取的時間是錯誤的(大家可以試驗一下).
為了解決讀取時間錯誤的問題,我仔細研究了一下jxl的api,呵呵,居然發現了一個好東東:DateCell類,用它的getDate方法可以得到一個cell的date對象.不過由於
國際化的需要,這個date對象得到的是格林尼治時間,你需要處理一下.
至於導出,其實和導入差不多,無非就是先訪問一下數據庫,把得到的信息寫入excel文件然後下載.
下面是我寫的導入導出周生產計劃的java類,其中開始的幾行注釋掉的部分分別是下載和上傳的試例.
(其實模板也很關鍵,下面的程序是基於模板而寫的,不過相信大家看了下面的程序,也可以知道模板的樣子了,需要重點說明的是,在模板中,填寫時間的字段必須設置成時
間格式-----在excel中點擊右鍵菜單輕松搞定)

/*
 * Create Date: 2004-11-9  10:20
 * Create By: 李春雷
 * purpose:和周計劃相關的導入導出操作
 */
   
    /**********************周生產下載示例*****************
    ExcelZJHXM myZJH =  new ExcelZJHXM();
    myZJH.download("mydataZjh","20041018003");
    ****************************************************/ 
   
    /**********************周計劃上傳示例*****************         
        ExcelZJHXM test = new ExcelZJHXM();       
        test.upload("zscjhtest");
        if(test.getFlag()){
        System.out.println("begin test--------------");
        ArrayList a = test.getData();
        for(int i = 0;i<a.size();i++){
        ExcelZJHXM.dataZJHXM mydata =(ExcelZJHXM.dataZJHXM)a.get(i);
        System.out.println(mydata.XH+" "+mydata.XMMC+" "+mydata.GZNR +" "+mydata.SFTD +" "+mydata.TDFW +" "+mydata.JHLRFLBH +" "+mydata.JHLRBH +" "+mydata.ZXDWMC +" "+mydata.PHDWMC +" "+mydata.DBRMC +" "+mydata.JHKSSJ+" "+mydata.JHWCSJ +" "+mydata.BZ);
        
    } 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved