查看:2241|回复:0
如何把oracle数据表的数据导成execl格式发表时间:2012-12-21 15:25:53

洗心、革面。

0分享0主题0帖子

学徒一级

(初出茅庐)


package ptobu_java;

import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;

import jxl.*;
import jxl.format.UnderlineStyle;
import jxl.write.*;

public class expExecl {
 private Connection conn = null;

 
   public static void main(String[] args) {
     
     expExecl t = new expExecl();
     t.getConn();
     t.excel("湖北");
     //t.eExcel();
   }
   
   public void excel(String filename){
     Statement st = null;
     ResultSet rs = null;
     
     WritableWorkbook wwb;
     try {
       wwb = Workbook.createWorkbook(new File("d://"+filename+".xls"));
       SimpleDateFormat formatter= new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
            java.util.Calendar currentTime =    java.util.Calendar.getInstance();
            String dateString = formatter.format(currentTime.getTime());
       
       for (int type=8;type>=1;type--){
         System.out.println(dateString+"开始第"+type+"类");
         String sheet = "";
         String condition="";
         String title="";
         if(type==1){
           sheet="第一类";
           title="重户口";
           condition="350101";
         }if(type==2){
           sheet="第二类";
           title="出生或补录";
           condition="350102";
         }if(type==3){
           sheet="第三类";
           title="33333333333";
           condition="350103";
         }if(type==4){
           sheet="第四类";
           title="444444444444";
           condition="350104";
         }if(type==5){
           sheet="第五类";
           title="5555555555555555";
           condition="11";
         }if(type==6){
           sheet="第六类";
           title="6666666666666";
           condition="350104";
         }if(type==7){
           sheet="第七类";
           title="77777777777777777";
           condition="33";
         }if(type==8){
           sheet="第八类";
           title="888888888888";
           condition="350103";
         }
         WritableSheet ws = wwb.createSheet(sheet, 0);
         Label caption1 = new Label(0, 0, title);
         ws.mergeCells(0, 0, 10, 1);
         ws.addCell(caption1);
         Label caption41 = new Label(0, 2, "G");
                           Label caption42 = new Label(1, 2, "F0");
                           Label caption43 = new Label(2, 2, "系统码");
                           Label caption44 = new Label(3, 2, "设备码");
                           ws.addCell(caption41);
                           ws.addCell(caption42);
                           ws.addCell(caption43);
                           ws.addCell(caption44);
         st = this.conn.createStatement();
         rs = st.executeQuery("select * from a_test where c='"+condition+"'");
         int cnt = rs.getMetaData().getColumnCount();
         int row = rs.getRow();
 //        System.out.println(cnt);
 //        System.out.println(row);
         Object obj = null;
         int j=3;
         while(rs.next()){
           for (int i=1;i<=cnt;i++ ){
             obj = rs.getString(i);
             //System.out.println("i="+obj);
                                           int k = i - 1;
 
                                           if (obj == null)
                                           {
                                                   Label value = new Label(k, j, "");
                                                   ws.addCell(value);
                                           }
                                           else
                                           {
                                                   Label value = new Label(k, j, obj.toString());
                                                   ws.addCell(value);
 
                                           }
 
           }
           j++;
           //System.out.println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3)+" "+rs.getString(4));
         }
         
       }
       System.out.println(dateString+"结束");
       wwb.write();
       wwb.close();
     } catch (Exception e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }
   }
   
   
   public void eExcel(){
   
                       WritableWorkbook wwb;
     try {
       wwb = Workbook.createWorkbook(new File("d://湖北省.xls"));
       WritableSheet ws = wwb.createSheet("第一页", 9);
                        Label caption1 = new Label(0, 0, "KKS编码KKS编码KKS编码KKS编码KKS编码KKS编码KKS编码KKS编码KKS编码KKS编码KKS编码KKS编码KKS编码");
                        ws.mergeCells(0, 0, 10, 1);
                       // Label caption1 = new Label(3, 0, "KKS编码");
                       // ws.mergeCells(col,row,width,heigh)
                        Label caption20 = new Label(0, 1, "电厂名称:");
                        Label caption21 = new Label(1, 1, "aaaa");
                        Label caption30 = new Label(0, 2, "电厂编码:");
                        Label caption31 = new Label(1, 2, "bbbb");

                        //Label caption40 = new Label(0, 3, "分项");
                        Label caption41 = new Label(0, 3, "G");
                        Label caption42 = new Label(1, 3, "F0");
                        Label caption43 = new Label(2, 3, "系统码");
                        Label caption44 = new Label(3, 3, "设备码");
                        Label caption45 = new Label(4, 3, "部件码");
                        Label caption46 = new Label(5, 3, "工艺码");
                        Label caption47 = new Label(6, 3, "安装地点码");
                        Label caption48 = new Label(7, 3, "地理位置码");
                        Label caption49 = new Label(8, 3, "KKS编码");
                        // Label caption410 = new Label(10, 3, "上级KKS编码");
                        Label caption411 = new Label(9, 3, "设备中文描述");
                        Label caption412 = new Label(10, 3, "专业");
                        Label caption413 = new Label(11, 3, "档号");
                        Label caption414 = new Label(12, 3, "图号");
                        Label caption415 = new Label(13, 3, "图名");
                        ws.addCell(caption1);
                        ws.addCell(caption20);
                        ws.addCell(caption21);
                        ws.addCell(caption30);
                        ws.addCell(caption31);

                        //ws.addCell(caption40);
                        ws.addCell(caption41);
                        ws.addCell(caption42);
                        ws.addCell(caption43);
                        ws.addCell(caption44);
                        ws.addCell(caption45);
                        ws.addCell(caption46);
                        ws.addCell(caption47);
                        ws.addCell(caption48);
                        ws.addCell(caption49);
                        // ws.addCell(caption410);
                        ws.addCell(caption411);
                        ws.addCell(caption412);
                        ws.addCell(caption413);
                        ws.addCell(caption414);
                        ws.addCell(caption415);
                        wwb.write();
                        wwb.close();
     } catch (Exception e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }
                   
   }
   
   public void exportExcel(String czrkpcsmc){
     
     
       try
                   {
                   //构建Workbook对象, 只读Workbook对象
                   //Method 1:创建可写入的Excel工作薄
                   jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File("d://test.xls"));
                   //Method 2:将WritableWorkbook直接写入到输出流
                   /*
                   OutputStream os = new FileOutputStream(targetfile);
                   jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);
                   */
                   jxl.write.WritableSheet ws = wwb.createSheet("Test Sheet 1", 0);
                   jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cellaaa");
                   ws.addCell(labelC);
                   //添加带有字型Formatting的对象
                   jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true);
                   jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
                   jxl.write.Label labelCF = new jxl.write.Label(1, 0, "This is a Label Cellbbb", wcfF);
                   ws.addCell(labelCF);
                   //添加带有字体颜色Formatting的对象
                   jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,
                   UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
                   jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
                   jxl.write.Label labelCFC = new jxl.write.Label(1, 0, "This is a Label Cellcccc", wcfFC);
                   ws.addCell(labelCFC);
                   //2.添加Number对象
                   jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);
                   ws.addCell(labelN);
                   //添加带有formatting的Number对象
                   jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
                   jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
                   jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);
                   ws.addCell(labelNF);
                   //3.添加Boolean对象
                   jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);
                   ws.addCell(labelB);
                   //4.添加DateTime对象
                   jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date());
                   ws.addCell(labelDT);
                   //添加带有formatting的DateFormat对象
                   jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss");
                   jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
                   jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(), wcfDF);
                   ws.addCell(labelDTF);
                   wwb.write();
                   //关闭Excel工作薄对象
                   wwb.close();


                   }
                   catch (Exception e)
                   {
                   e.printStackTrace();
                   }

   }
   
   
   public Connection getConn(){
     Connection conn=null;
     try {
       Class.forName("oracle.jdbc.driver.OracleDriver");
       String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
       try {
         conn = DriverManager.getConnection(url, "xzy", "xzy");
       } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
       }
     } catch (ClassNotFoundException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }
     this.conn=conn;
     return conn;
     
   }
   

}

您需要登录以后才可以回帖    登录|注册