翱翔的Eagle

—— 世界上没有垃圾,只有放错了地方的财宝!

BlogJava 首页 新随笔 联系 聚合 管理
  3 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks
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  欢迎你们的加盟。
posted on 2006-09-20 18:16 skyeagle 阅读(2048) 评论(1)  编辑  收藏

评论

# re: java 生成excel文件 可以做为简单的报表工具 2007-03-05 19:41 rewr
rewrwer  回复  更多评论
  


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


网站导航: