1. 程式人生 > >第一篇 部落格:java從資料庫讀取資料,並寫入到excel表格中

第一篇 部落格:java從資料庫讀取資料,並寫入到excel表格中

  今天,組長分配了查詢資料庫記錄,並把這些記錄寫入到excel表格中,以前沒有嘗試過,借鑑了一些別人的程式碼,最終實現了功能,寫一篇部落格,總結一下這個過程。

1.準備需要用到的jar包

    1.jxl.jar 

    2.mysql-connector-java-5.1.30.jar

     網上百度,這些jar包都可以下載的

2.將下載的jar包,配置到專案當中

    右擊專案,選擇Build Path--》Configure Build Path --》Add External JARs  

    然後選擇你剛剛下載的jar包的路徑,點選確認,這樣準備工作就做好了。

3.程式碼部分

    import java.io.File;   
import jxl.*;   
import jxl.write.*;  
import jxl.write.biff.RowsExceededException;  
import java.sql.*;  
import java.util.*; 


public class DBtoExcel {


/** 
     * 匯出Excel表 
     * @param rs 資料庫結果集 
     * @param filePath 要儲存的路徑,檔名為 fileName.xls 
     * @param sheetName 工作簿名稱 工作簿名稱,本方法目前只支援匯出一個Excel工作簿 
     * @param columnName 列名,型別為Vector 
     */  
    public void WriteExcel(ResultSet rs, String filePath, String sheetName, Vector columnName) {  
        WritableWorkbook workbook = null;  
        WritableSheet sheet = null;  
          
          
        int rowNum = 1; // 從第一行開始寫入  
        try {  
            workbook = Workbook.createWorkbook(new File(filePath)); // 建立Excel檔案  
            sheet = workbook.createSheet(sheetName, 0); // 建立名為 sheetName 的工作簿    
              
            this.writeCol(sheet, columnName, 0); // 首先將列名寫入  
            // 將結果集寫入  
            while(rs.next()) {  
                Vector col = new Vector(); // 用以儲存一行資料  
                  
                for(int i = 1; i <= columnName.size(); i++) { // 將一行內容儲存在col中  
                    col.add(rs.getString(i));  
                }  
                // 寫入Excel  
                this.writeCol(sheet, col, rowNum++);  
            }  
              
        }catch(Exception e) {  
            e.printStackTrace();  
        }  
        finally {  
            try {  
                // 關閉  
                workbook.write();  
                workbook.close();  
                rs.close();  
            }catch(Exception e) {  
                e.printStackTrace();  
            }  
        }  
    }
    /*** 
     * 將陣列寫入工作簿  
     * @param sheet 要寫入的工作簿 
     * @param col 要寫入的資料陣列 
     * @param rowNum 要寫入哪一行 
     * @throws WriteException  
     * @throws RowsExceededException  
     */  
    private void writeCol(WritableSheet sheet, Vector col, int rowNum) throws RowsExceededException, WriteException {  
        int size = col.size(); // 獲取集合大小  
          
        for(int i = 0; i < size; i++) { // 寫入每一列  
            Label label = new Label(i, rowNum, (String) col.get(i));   
            sheet.addCell(label);  
        }  
    }
    
    public static void main(String[] args) throws SQLException {

    String DRIVER = "com.mysql.jdbc.Driver";  
        String URL = "jdbc:mysql://localhost:3306/meritlink";//根據自己的資料庫設定路徑和使用者名稱密碼
        String USERNAME = "root";  
        String USERPASSWORD = "";  
          
        String sql = "SELECT nn , COUNT(*) AS times FROM "
           + "(SELECT SUBSTRING_INDEX(NAME, '/', -2) nn ,accesstime FROM accessinfo WHERE accesstime BETWEEN'2018-03-31'  AND  '2018-04-01') tt "
           + "GROUP BY nn ORDER BY times DESC;"; // 根據自己的要求書寫sql語句  
        Vector columnName = new Vector(); // 列名   
        columnName.add("網頁名稱");  
        columnName.add("訪問次數");    
        
        
        // 連線資料庫  
        ResultSet rs ; 
        try {
Class.forName(DRIVER);
Connection conn = DriverManager.getConnection(URL,USERNAME,USERPASSWORD);  
        PreparedStatement ps = conn.prepareStatement(sql);  
        rs = ps.executeQuery();
     // 匯出檔案的路徑和工作簿名稱都可根據自己的需求修改
        new DBtoExcel().WriteExcel(rs, "F:/visitinfo/day03.xls", "訪問記錄", columnName);
      
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}                 
}
}

完成。

相關推薦

第一 部落java資料庫讀取資料寫入excel表格

  今天,組長分配了查詢資料庫記錄,並把這些記錄寫入到excel表格中,以前沒有嘗試過,借鑑了一些別人的程式碼,最終實現了功能,寫一篇部落格,總結一下這個過程。1.準備需要用到的jar包    1.jxl.jar     2.mysql-connector-java-5.1.

C# 關於資料庫資料顯示在DataGridView

從資料庫取資料,並顯示在DataGridView中,這種做法在.net開發經常用到。那麼到底該怎麼做呢? 1.要從資料庫取資料,必須建立資料庫連線 2.將資料庫中取到的資料通過一定方法,顯示在介面的的dataGridView中 程式碼:    效果如下: 從中,我們可以

FlumeKafka讀取資料寫入到Hdfs上

需求:kafka有五個主題  topic topic-app-startuptopic topic-app-errortopic topic-app-eventtopic topic-app-usagetopic topic-app-pageflume讀取Kafka 5個主題

第一部落京東集團java研發實習面經

注:今天在牛客網看了一位大牛的面經,也可以說是2018年的總結。深有感觸,再看看我的部落格簡直是浪費了部落格這個交流平臺,所以也準備追尋大牛的腳步,分享和記錄一些學習中學到的知識和心得。 大牛面經傳送門: https://www.nowcoder.com/discuss/137593?t

第一部落對插入排序和歸併排序演算法時間複雜度的學習

    第一次寫部落格,心情難免有點忐忑,不過為了達到心中的小目標,儘可能的用有效率的方法去提升自己。廢話不多說,下面進入正題。    剛看了網易公開課裡的《麻省理工學院公開課:演算法導論》,受益頗深!國外學校的講課方式確實更有趣味和深度(或許因為在學校壓根沒聽進去過幾節課)

開始第一部落——(JAVA後端開發)秋招之路

距離秋招還有短短的一個月時間,7月份中旬就會有大廠開始招聘,秋招會持續幾個月時間,一直到10月份,11月份。需要為其做好更多的準備,同時也要有好的心態,雖然還沒有實際的面試經驗,但是通過近期刷了的很多面經,還是從中學到很多。後期需要做好時間規劃,從各個方面去著手學習。寫在學習

第一部落極光推送以及自定義推送聲音

極光註冊就不說了,首先配置App的build.grandle 在defaultConfig裡貼上一下內容appkey為我在極光註冊之後的Appkey 然後配置AndroidManifest  把下面這些資訊放在application裡面 <!--極光的-->

Java呼叫R 資料庫讀取資料用R根據讀取資料生成圖片儲存

Java呼叫R 以及用R生成的圖片儲存 使用 png()可以保證圖片質量 有人說繪製的圖片上有中文會出現亂碼,其實設定下字型就好了 family=‘STXihei’ Java呼叫R 以及用R生成的圖片儲存 Rserve的配置和啟動: ①安裝Rserve包。

java資料庫讀取選單遞迴生成選單樹

首先看一下選單的樣子 根據這個樣子我們定義選單類 public class Menu { // 選單id private String id; // 選單名稱 private String name; // 父

Java控制檯讀取資料輸入流System.in的幾種方法效率比較

這是一道PTA上關於複雜度演算法的題目——最大子列和問題,程式簡單。 我分別用 1)構造Scanner物件:Scanner in = new Scanner(System.in); 2)構造BufferedReader物件:BufferedReader br = new B

小碼農的第一部落--Java web ServletConfig物件

Java Web ServletConfig物件 ServletConfig物件 演示案例1 關於Servletconfig物件 XML配置資訊 程式碼實現 ServletConf

一個大齡FPGA工程師在CSDN發的第一部落

轉自微博:https://blog.csdn.net/kekechunmi/article/details/79571988 我做FPGA開發9年多了,算是一個大齡工程師了。期間接觸過一些專案管理和技術支援之類的工作,不知道為什麼,脫離研發做這些工作我總覺得不踏實,也許天生就適合死磕技術。就

一個國企工作兩年的混吃等死人轉行JAVA後臺的第一部落

        以前用的CSDN已經忘記登入名稱和密碼了,以前也想著是每週記錄2次以上的情況來證明自己的成長,畢業後的一系列決定讓自己措手不及。這裡所說的國企是“中國移動”,或許也不能說為國企吧!兩年的工作心情有點低落和自己想象中的畢業生活又點出入,工作簡單重複大部分是協調和

我的第一部落之js的XXXX年XX月XX日 星期[日一-六] [上下]午 XX時:XX分

<!DOCTYPE html> <html>     <head> <title>test</title>    &nbs

開始我的第一部落---之python學習001

筆者開始學習python,目標是要做python介面自動化和爬蟲等,給自己定個目標希望可以實現。筆者想一點一點的瞭解python而不是寫了一堆程式碼只會除錯而沒有真正的弄懂內部結構是什麼。 這是筆者人生中第一次寫部落格,以後備參考用。 變數:把一個值給一個名字時,ta會儲存在記憶體中,這個名字稱之為變數。

我的第一部落和其中的思考

大四在杭州同花順實習,轉正後,  然後一年後離開了杭州 到了成都 以前不寫部落格也是因為覺得, 技術水平還麼有達到  寫的時間可以學習更多的東西, (每天除了工作10小時, 平均有2小時在自學) 由於工作地方的轉變, 團隊的變化, 整個人的思維也會變化,  &n

第一部落——一切的開始

2018-11-14 “凡不能毀滅我的,必使我強大” ——尼采 1、初二上學期期中考試考完的晚上 一個非常難過的晚上 我的理科全盤皆崩,特別是數學,最後兩道題的最後一小問全部沒有做完 2、NOIP2018考後第三天晚上 Day1第三題根本沒有做出來,Day2看

STL之vector--第一部落

  STL(Standard Template Library)是C++的標準模板庫,方便靈活地使用STL將節省大量工作,減少不必要寫的程式碼。接下來我們來看看STL裡動態陣列vector的使用。 當我們不確定陣列的大小,開個大陣列又擔心浪費空間時,我們就需要了解了解神奇的動態陣列了。而STL裡

這是我既C語言作業寫部落後寫的第一部落

這篇部落格應該算是寫給我自己的部落格吧,所以這裡我想用繁體字寫,因為我漸漸地發現我已經很少使用到繁體字了,日常QQ聊天都使用簡體字,繁體字都懶得切換了,但是為了不讓別人麻煩,在外界交流的時候我會使用簡體字的。心中可能有些惋惜吧,因為考慮到各種因素而越來越少地使用繁體字了,曾經是那麼想認識繁體字,現在的自己確是

今天是我在csdn寫下第一部落的日子

        我大二註冊了csdn賬號,已經是6、7年csdn的老使用者了,一直在csdn查閱資料,卻沒有寫過一篇部落格。曾經的我認為,每天發朋友圈打卡、寫部落格記錄學習其實都是表面形式,直到昨天晚上,我發現我錯了,有人在朋友圈持續打卡已