六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 86|回复: 0

Java生成excel

[复制链接]

升级  86%

9

主题

9

主题

9

主题

童生

Rank: 1

积分
43
 楼主| 发表于 2013-1-27 04:40:12 | 显示全部楼层 |阅读模式
File tempFile=new File("c:/output.xls");
WritableWorkbook workbook = Workbook.createWorkbook(tempFile);   
WritableSheet sheet = workbook.createSheet("TestCreateExcel", 0);   
  
//一些临时变量,用于写到excel中   
Label l=null;   
jxl.write.Number n=null;   
jxl.write.DateTime d=null;   
  
//预定义的一些字体和格式,同一个Excel中最好不要有太多格式   
WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD,
    false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLUE);   
WritableCellFormat headerFormat = new WritableCellFormat (headerFont);   
   
WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD,
     false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);   
WritableCellFormat titleFormat = new WritableCellFormat (titleFont);   
   
WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD,
    false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);   
WritableCellFormat detFormat = new WritableCellFormat (detFont);   
   
NumberFormat nf=new NumberFormat("0.00000"); //用于Number的格式   
WritableCellFormat priceFormat = new WritableCellFormat (detFont, nf);   
   
DateFormat df=new DateFormat("yyyy-MM-dd");//用于日期的   
WritableCellFormat dateFormat = new WritableCellFormat (detFont, df);   
   
//剩下的事情,就是用上面的内容和格式创建一些单元格,再加到sheet中   
l=new Label(0, 0, "用于测试的Excel文件", headerFormat);   
sheet.addCell(l);   
   
//add Title   
int column=0;   
l=new Label(column++, 2, "标题", titleFormat);   
sheet.addCell(l);   
l=new Label(column++, 2, "日期", titleFormat);   
sheet.addCell(l);   
l=new Label(column++, 2, "货币", titleFormat);   
sheet.addCell(l);   
l=new Label(column++, 2, "价格", titleFormat);   
sheet.addCell(l);   
   
//add detail   
int i=0;   
column=0;   
l=new Label(column++, i+3, "标题 "+i, detFormat);   
sheet.addCell(l);   
d=new DateTime(column++, i+3, new java.util.Date(), dateFormat);   
sheet.addCell(d);   
l=new Label(column++, i+3, "CNY", detFormat);   
sheet.addCell(l);   
n=new jxl.write.Number(column++, i+3, 5.678, priceFormat);   
sheet.addCell(n);   
   
i++;   
column=0;   
l=new Label(column++, i+3, "标题 "+i, detFormat);   
sheet.addCell(l);   
d=new DateTime(column++, i+3, new java.util.Date(), dateFormat);   
sheet.addCell(d);   
l=new Label(column++, i+3, "SGD", detFormat);   
sheet.addCell(l);   
n=new jxl.write.Number(column++, i+3, 98832, priceFormat);   
sheet.addCell(n);   
   
//设置列的宽度   
column=0;   
sheet.setColumnView(column++, 20);   
sheet.setColumnView(column++, 20);   
sheet.setColumnView(column++, 10);   
sheet.setColumnView(column++, 20);   
   
workbook.write();   
workbook.close();
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表