六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 64|回复: 0

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

[复制链接]

升级  80%

10

主题

10

主题

10

主题

童生

Rank: 1

积分
40
 楼主| 发表于 2013-1-15 02:59:21 | 显示全部楼层 |阅读模式
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!---->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(00"编号");
            ws.addCell(label);
            Label label2 
= new Label(10"冲值卡号");
            ws.addCell(label2);
            Label label3 
= new Label(20"冲值卡密码");
            ws.addCell(label3);
            Label label4 
= new Label(30"最晚冲值时间");
            ws.addCell(label4);
            Label label5 
= new Label(40"冲值的面值(TC)(1RMB=100TC)");
            ws.addCell(label5);
            Label label6 
= new Label(50"是否作废");
            ws.addCell(label6);

            Number labelN 
= new Number(013.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(00);

            
// 判断单元格的类型,做出相应的转换
            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(00);
            
// 通用的获取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);
        }
    }

}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

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