network-eagle 发表于 2013-1-28 19:33:33

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

<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(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);
        }
    }

}
页: [1]
查看完整版本: java 生成excel文件 可以做为简单的报表工具