骑猪闯天下

J2ME随笔,记录成长的脚步

统计

留言簿(3)

阅读排行榜

评论排行榜

数据库导出至Excel表格

的的
  1 package jxlTest;
  2 
  3 import java.io.FileOutputStream;   
  4 import java.io.OutputStream;   
  5 import java.text.SimpleDateFormat;   
  6 import java.util.ArrayList;   
  7 import java.util.Date;   
  8 import java.util.List;   
  9   
 10 import jxl.*;   
 11 import jxl.format.Alignment;   
 12 import jxl.format.Border;   
 13 import jxl.format.BorderLineStyle;   
 14 import jxl.format.CellFormat;   
 15 import jxl.write.Boolean;   
 16 import jxl.write.Label;   
 17 import jxl.write.Number;   
 18 import jxl.write.WritableCellFormat;   
 19 import jxl.write.WritableFont;   
 20 import jxl.write.WritableSheet;   
 21 import jxl.write.WritableWorkbook;   
 22   
 23 public class JXLExample {   
 24   
 25     /**  
 26      *  数据库导出至Excel表格 
 27      */  
 28     public static void main(String[] args) {   
 29         // 准备设置excel工作表的标题   
 30         String[] title = {"编号","产品名称","产品价格","产品数量","生产日期","产地","是否出口"};   
 31         try {   
 32             // 获得开始时间   
 33             long start = System.currentTimeMillis();   
 34             // 输出的excel的路径   
 35             String filePath = "e:\\testJXL.xls";   
 36             // 创建Excel工作薄   
 37             WritableWorkbook wwb;   
 38             // 新建立一个jxl文件,即在e盘下生成testJXL.xls   
 39             OutputStream os = new FileOutputStream(filePath);   
 40             wwb=Workbook.createWorkbook(os);    
 41             // 添加第一个工作表并设置第一个Sheet的名字   
 42             WritableSheet sheet = wwb.createSheet("产品清单"0);   
 43             Label label;   
 44             for(int i=0;i<title.length;i++){   
 45                 // Label(x,y,z) 代表单元格的第x+1列,第y+1行, 内容z   
 46                 // 在Label对象的子对象中指明单元格的位置和内容   
 47                 label = new Label(i,0,title[i]);   
 48                 // 将定义好的单元格添加到工作表中   
 49                 sheet.addCell(label);   
 50             }   
 51             // 下面是填充数据   
 52             /*   
 53              * 保存数字到单元格,需要使用jxl.write.Number  
 54              * 必须使用其完整路径,否则会出现错误  
 55              * */  
 56             // 填充产品编号   
 57             jxl.write.Number number = new jxl.write.Number(0,1,20071001);   
 58             sheet.addCell(number);   
 59             // 填充产品名称   
 60             label = new Label(1,1,"金鸽瓜子");   
 61             sheet.addCell(label);   
 62             /*  
 63              * 定义对于显示金额的公共格式  
 64              * jxl会自动实现四舍五入  
 65              * 例如 2.456会被格式化为2.46,2.454会被格式化为2.45  
 66              * */  
 67             jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");   
 68             jxl.write.WritableCellFormat wcf = new jxl.write.WritableCellFormat(nf);   
 69             // 填充产品价格   
 70             jxl.write.Number nb = new jxl.write.Number(2,1,2.45,wcf);   
 71             sheet.addCell(nb);   
 72             // 填充产品数量   
 73             jxl.write.Number numb = new jxl.write.Number(3,1,200);   
 74             sheet.addCell(numb);   
 75             /*  
 76              * 定义显示日期的公共格式  
 77              * 如:yyyy-MM-dd hh:mm  
 78              * */  
 79             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");   
 80             String newdate = sdf.format(new Date());   
 81             // 填充出产日期   
 82             label = new Label(4,1,newdate);   
 83             sheet.addCell(label);   
 84             // 填充产地   
 85             label = new Label(5,1,"陕西西安");   
 86             sheet.addCell(label);   
 87             /*  
 88              * 显示布尔值  
 89              * */  
 90             jxl.write.Boolean bool = new jxl.write.Boolean(6,1,true);   
 91             sheet.addCell(bool);   
 92             /*  
 93              * 合并单元格  
 94              * 通过writablesheet.mergeCells(int x,int y,int m,int n);来实现的  
 95              * 表示将从第x+1列,y+1行到m+1列,n+1行合并  
 96              *   
 97              * */  
 98             sheet.mergeCells(0,3,2,3);   
 99             label = new Label(0,3,"合并了三个单元格");   
100             sheet.addCell(label);   
101             /*  
102              *   
103              * 定义公共字体格式  
104              * 通过获取一个字体的样式来作为模板  
105              * 首先通过web.getSheet(0)获得第一个sheet  
106              * 然后取得第一个sheet的第二列,第一行也就是"产品名称"的字体   
107              * */  
108             CellFormat cf = wwb.getSheet(0).getCell(10).getCellFormat();   
109             WritableCellFormat wc = new WritableCellFormat();   
110             // 设置居中   
111             wc.setAlignment(Alignment.CENTRE);   
112             // 设置边框线   
113             wc.setBorder(Border.ALL, BorderLineStyle.THIN);   
114             // 设置单元格的背景颜色   
115             wc.setBackground(jxl.format.Colour.RED);   
116             label = new Label(1,5,"字体",wc);   
117             sheet.addCell(label);   
118   
119             // 设置字体   
120             jxl.write.WritableFont wfont = new jxl.write.WritableFont(WritableFont.createFont("隶书"),20);   
121             WritableCellFormat font = new WritableCellFormat(wfont);   
122             label = new Label(2,6,"隶书",font);   
123             sheet.addCell(label);   
124                
125             // 写入数据   
126             wwb.write();   
127             // 关闭文件   
128             wwb.close();   
129             long end = System.currentTimeMillis();   
130             System.out.println("----完成该操作共用的时间是:"+(end-start)/1000);   
131         } catch (Exception e) {   
132             System.out.println("---出现异常---");   
133             e.printStackTrace();   
134         }   
135     }   
136   
137 }  

posted on 2009-02-11 15:43 骑猪闯天下 阅读(417) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: