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 欢迎你们的加盟。