java 生成excel文件 可以做为简单的报表工具

package  org.eagle.jexcel;

import  jxl. * ;
import  jxl.format.UnderlineStyle;
import  jxl.write. * ;
import  jxl.write.Number;
import  jxl.write.Boolean;
import  java.io. * ;

/**
 * 
 * <p>
 * Title:
 * </p>
 * 
 * <p>
 * Description:
 * </p>
 * 
 * <p>
 * Copyright: Copyright (c) 2006
 * </p>
 * 
 * <p>
 * Company:
 * </p>
 * 
 * 
@author  eagle
 * 
@version  1.0
 
*/
public   class  JexcelHandle {
    
public  JexcelHandle() {
    }

    
public   static   void  writeExcel(OutputStream os) {
        
try  {
            WritableWorkbook wwb 
=  Workbook.createWorkbook(os);
            
//  创建excel工作表 镇定名称和位置
            WritableSheet ws  =  wwb.createSheet( " card sheet  " 0 );
            
//  1.添加Label对象
            Label label  =   new  Label( 0 0 " 编号 " );
            ws.addCell(label);
            Label label2 
=   new  Label( 1 0 " 冲值卡号 " );
            ws.addCell(label2);
            Label label3 
=   new  Label( 2 0 " 冲值卡密码 " );
            ws.addCell(label3);
            Label label4 
=   new  Label( 3 0 " 最晚冲值时间 " );
            ws.addCell(label4);
            Label label5 
=   new  Label( 4 0 " 冲值的面值(TC)(1RMB=100TC) " );
            ws.addCell(label5);
            Label label6 
=   new  Label( 5 0 " 是否作废 " );
            ws.addCell(label6);

            Number labelN 
=   new  Number( 0 1 3.1415926 );
            ws.addCell(labelN);
            
// 通过 记录集的方式可以得到数据库中的相关的记录
            
//  WritableFont wf = new WritableFont(WritableFont.TIMES, 18,
            
//  WritableFont.BOLD, true);
            
//  WritableCellFormat wcf = new WritableCellFormat(wf);
            
//  Label labelcf = new Label(1, 0, "this is a label test", wcf);
            
//  ws.addCell(labelcf);
            
//   // 2.添加Number对象
            
//  Number labelN = new Number(0,1,3.1415926);
            
//  ws.addCell(labelN);
            
//
            
//   // 添加带有formatting的Number对象
            
//  NumberFormat nf = new NumberFormat("#.##");
            
//  WritableCellFormat wcfN = new WritableCellFormat(nf);
            
//  Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN);
            
//  ws.addCell(labelNF);
            
//
            
//   // 3.添加Boolean对象
            
//  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对象
            
//  DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss");
            
//  WritableCellFormat wcfDF = new WritableCellFormat(df);
            
//  DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF);
            
//  ws.addCell(labelDTF);
            
//
            
//   // 添加图片对象,jxl只支持png格式图片
            
//  File image = new File("f:\\x.png");
            
//  WritableImage wimage = new
            
//  WritableImage(0,1,2,2,image); // 0,1分别代表x,y.2,2代表宽和高占的单元格数
            
//  ws.addImage(wimage);
            
//  写入工作表
            wwb.write();
            wwb.close();
        } 
catch  (Exception e) {
            System.out.println(
""   +  e);
        }

    }



    
public   static   void  modifyExcel(File file1, File file2) {
        
try  {
            
//  先copy 在操作第二个文件修改,
            Workbook rwb  =  Workbook.getWorkbook(file1);
            WritableWorkbook wwb 
=  Workbook.createWorkbook(file2, rwb); //  copy
            WritableSheet ws  =  wwb.getSheet( 0 );
            WritableCell wc 
=  ws.getWritableCell( 0 0 );

            
//  判断单元格的类型,做出相应的转换
            Label label  =  (Label) wc;
            label.setString(
"  1 " );

            wwb.write();
            wwb.close();
            rwb.close();
        } 
catch  (Exception e) {
            e.printStackTrace();
        }
    }

    
/**
     * 读取Excel
     * 
     * 
@param  filePath
     
*/
    
public   static   void  readExcel(String filePath) {
        
try  {
            InputStream is 
=   new  FileInputStream(filePath);
            Workbook rwb 
=  Workbook.getWorkbook(is);
            
//  Sheet st = rwb.getSheet("0")这里有两种方法获取sheet表,1为名字,而为下标,从0开始
            Sheet st  =  rwb.getSheet( " original " );
            Cell c00 
=  st.getCell( 0 0 );
            
//  通用的获取cell值的方式,返回字符串
            String strc00  =  c00.getContents();
            
//  获得cell具体类型值的方式
             if  (c00.getType()  ==  CellType.LABEL) {
                LabelCell labelc00 
=  (LabelCell) c00;
                strc00 
=  labelc00.getString();
            }
            
//  输出
            System.out.println(strc00);
            
//  关闭
            rwb.close();
        } 
catch  (Exception e) {
            e.printStackTrace();
        }
    }

    
public   static   void  main(String args[]) {
        
try  {
            File fileWrite 
=   new  File( " f:/cardWrite.xls " );
            fileWrite.createNewFile();
            OutputStream os 
=   new  FileOutputStream(fileWrite);
            JexcelHandle.writeExcel(os);
            JexcelHandle.modifyExcel(
new  File( " f:/cardWrite.xls " ),  new  File(
                    
" f:/cardWrite2.xls " ));
        } 
catch  (Exception e) {
            System.out.println(e);
        }
    }

}
在网上看了写源码在结合自己的。不要忘了下载jxl包哟。http://www.andykhan.com/jexcelapi/
<% @ page contentType = " text/html; charset=utf-8 "  language = " java "   import = " java.sql.* "  errorPage = ""   %>
<% @ page  import = " org.eagle.gz.* " %>
<% @ page  import = " java.io.* " %>
< html >
< head >
< meta http - equiv = " Content-Type "  content = " text/html; charset=utf-8 " >
< title > 无标题文档 </ title >
< style type = " text/css " >
<!--
body,td,th {
    font
- size: 12px;
}
body {
    margin
- left: 0px;
    margin
- top: 0px;
    margin
- right: 0px;
    margin
- bottom: 0px;
}
-->
</ style ></ head >

< body >

<%
try {
response.reset();
// 清除Buffer
response.setContentType( " application/vnd.ms-excel " );
File fileWrite 
=   new  File( " f:/testWrite.xls " );
fileWrite.createNewFile();
new  FileOutputStream(fileWrite);
JexcelHandle.writeExcel(
new  FileOutputStream(fileWrite));
}
catch (Exception e){
    System.out.println(e);
}
%>
</ body >
</ html >
也可以在jsp中运用,
群 16687185  欢迎你们的加盟。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值