Java從數據庫導出Excel

一、導入jar包(POI,stax,xmlbeans   ,dom4j)mysql

二、代碼以下:sql

public class Export  {
    private  CrawlerDAO cd=null;
    public void exportAll(List li){
        File targetFile = null;
        try{
            List <String> list =li;
            //建立工做簿 XSSF->就是指2010版本的Excel
            XSSFWorkbook wb = new XSSFWorkbook();
            //工做表
            XSSFSheet sheet = wb.createSheet("藏品徵集信息");
            //標頭行,0表明第一行
            XSSFRow header = sheet.createRow(0);
            //建立單元格,第一行第一列
            XSSFCell cell0 = header.createCell(0);
            cell0.setCellValue("內容");
            //設置列的寬度,getPhysicalNumberOfCells表明這一行有多少包含數據的列
            for(int i = 0 ; i < header.getPhysicalNumberOfCells() ; i++){
                sheet.setColumnWidth(i, 255 * 20);//他用的寬度單位是1/255個字符
            }
            header.setHeightInPoints(30);//行高30像素
            for(int i = 0 ; i < list.size() ; i++ ){//將結果進行輸出
                String member=list.get(i);//遍歷
                XSSFRow row = sheet.createRow(i+1);//生成新行保存數據
                row.setHeightInPoints(30);
                row.createCell(0).setCellValue(member);
                System.out.println("======"+i+"======");
            }
            String fileName = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
            targetFile = new File("e:/" + fileName + ".xlsx");
            FileOutputStream fos = new FileOutputStream(targetFile);
            wb.write(fos); //向指定文件寫入
            fos.close();//釋放資源
            wb.close();    
            System.out.println("==>文件讀寫完成<====>地址爲:"+targetFile+"===");
        }catch(Exception e){
            e.printStackTrace();  
            throw new RuntimeException(e);
        }    
    }    
    public static void main(String[] args) throws Exception {
         CrawlerDAO cd =new CrawlerDAO();
         List <String> li=cd.findAll();
         Export ex=new Export();
         ex.exportAll(li);
    }
}數據庫

//DAO層操做數據庫微信

public class CrawlerDAO  {
    public List<String> findAll() {
        List li=new ArrayList<String>();
        String cont;
        // 驅動程序名        
        String driver = "com.mysql.jdbc.Driver";  
        // URL指向要訪問的數據庫名world        
        String url = "jdbc:mysql://***?useUnicode=true&amp;characterEncoding=UTF-8";
        // MySQL配置時的用戶名           
        String user = "***";           
        // MySQL配置時的密碼          
        String password = "********";  
        try {               
            // 加載驅動程序        
            Class.forName(driver);  
            // 連續數據庫       
            Connection conn = DriverManager.getConnection(url, user, password);  
            if(!conn.isClosed())          
            System.out.println("鏈接成功!");  
            // statement用來執行SQL語句             
            Statement statement = conn.createStatement();  
            // 要執行的SQL語句        
            String sql = "select * from zkxa_crawler";  
            // 結果集
            ResultSet rs=statement.executeQuery(sql);  
            while(rs.next())  {
                     cont= rs.getString("content");
                     li.add(cont);
                 }
            conn.close();
            return li;
        }catch(ClassNotFoundException e) {  
                System.out.println("Sorry,can`t find the Driver!,return null");
                return null;
        }catch(Exception e) {  
                System.out.println("return null");
                return null;
        }
    }
}dom

若有BUG或者須要jar包,加我微信!url

相關文章
相關標籤/搜索