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]