package hh;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
/**
* 数据导出excel显示
* @author liangwj
* jsp调用如下:
* <%@page import="com.olive.Jexcel.out.ExcelOutTemplate" %>
* <%
* response.reset();
* response.setContentType("application/vnd.ms-excel");
* ExcelOutTemplate excelOut = new ExcelOutTemplate();
* excelOut.writeExcel(response.getOutputStream());
* %>
*
*/
public class ExcelOutTemplate implements ExcelOut {
//缺省数据字体大小
protected int defaultDataFontsize = 12;
//缺省标题字体大小
protected int defaultTitleFontsize = 14;
//缺省条件字体大小
protected int defaultCondFontsize = 12;
//指定数据单元格的各种属性
protected WritableCellFormat wcfFCD = null;
//指定标题单元格的各种属性
protected WritableCellFormat wcfFCT = null;
//指定条件单元格的各种属性
protected WritableCellFormat wcfFCC = null;
//初始化
{
setDefaultDataFont();
setDefaultTitleFont();
setDefaultCondFont();
}
/**
* 测试数据1
* @return List 数据
*/
public List getData(){
ArrayList list = new ArrayList();
String[] data = new String[4];
for(int i=0;i<100;i++)
{
data[0] = "AAA" +i;
data[1] = "BBB";
data[2] =i+ "CCC";
data[3] = "DDD";
list.add(i,data);
}
return list;
}
public void writeExcel(OutputStream os) throws Exception {
//报表演示1
Object work = newWork(os);
Object sheet = newSheet(work,0," ffffff");
setColumnWidth(sheet,1,new int[] {10,20,20,30,20});
setRowHeight(sheet,3,400);
setTitle(sheet,"工资报表",3,3,300);
setTitle(sheet,"dddd",4,3,300);
setRowHeight(sheet,5,400);
setData(sheet,"编号",1,5,0);
setData(sheet,"节点编号",2,5,0);
setData(sheet,"姓名",3,5,0);
setData(sheet,"银行卡号",4,5,0);
setData(sheet,"总工资(元)",5,5,0);
setMutiRowDataAndIndex(sheet,getData(),1,6,4, new int[] {2,2,2,2},300);
setTitle(sheet,"工资报表",3,110,300);
setTitle(sheet,"ffffff",4,110,300);
closeWork(work);
}
//建立文件,以文件方式
public Object newWorkBook(File file) throws Exception {
try {
Workbook wb = Workbook.getWorkbook(file);
return wb;
} catch (IOException e) {
System.out.println("建立文件错误:newWork");
e.printStackTrace();
throw e;
}
}
//建立文件,以输出流方式
public Object newWork(Object wb,OutputStream os) throws Exception {
try {
WritableWorkbook wwb = Workbook.createWorkbook(os,(Workbook) wb);
return wwb;
} catch (IOException e) {
System.out.println("建立文件错误:newWork");
e.printStackTrace();
throw e;
}
}
//建立文件,以输出流方式
public Object newWork(OutputStream os) throws Exception {
try {
WritableWorkbook wwb = Workbook.createWorkbook(os);
return wwb;
} catch (IOException e) {
System.out.println("建立文件错误:newWork");
e.printStackTrace();
throw e;
}
}
//写入Exel工作表,关闭Excel工作薄对象
public void closeWork(Object wwb) throws Exception {
try {
((WritableWorkbook) wwb).write();
((WritableWorkbook) wwb).close();
} catch (IOException e) {
System.out.println("关闭Excel工作薄对象错误:closeWork");
e.printStackTrace();
throw e;
}
}
//获得一个工作表对象,0-代表第一个,1-代表第二个,...
public Object getSheet(Object wwb,int series) throws Exception {
if(wwb == null || !(wwb instanceof WritableWorkbook)){
System.out.println("文件为空错误");
throw new Exception("文件为空错误");
}else{
WritableSheet ws = ((WritableWorkbook) wwb).getSheet(series);
return ws;
}
}
//建立一个工作表对象,0-代表第一个,1-代表第二个,...
public Object newSheet(Object wwb,int series,String title) throws Exception {
if(wwb == null || !(wwb instanceof WritableWorkbook)){
System.out.println("文件为空错误");
throw new Exception("文件为空错误");
}else{
WritableSheet ws = ((WritableWorkbook) wwb).createSheet(title, series);
return ws;
}
}
//设置行的高度
public void setRowHeight(Object ws,int row,int height) throws Exception {
try {
((WritableSheet) ws).setRowView(row,height);
} catch (RowsExceededException e) {
System.out.println("设置行高度错误:setRowHeight");
e.printStackTrace();
throw e;
}
}
//设置列的宽度
public void setColumnWidth(Object ws,int column,int width){
((WritableSheet) ws).setColumnView(column,width);
}
//设置列的宽度,从开始列起,按照width数组的数据顺序设置列宽
public void setColumnWidth(Object ws,int startcolumn,int[] width){
for(int i = 0;i < width.length;i++){
setColumnWidth(ws,startcolumn,width[i]);
startcolumn++;
}
}
//合并单元
public void setMergeCells(Object ws,int column,int row,int mergecolumn,int mergerow) throws Exception {
((WritableSheet) ws).mergeCells(column,row,mergecolumn,mergerow);
}
//添加数据,多行操作
public void setMutiRowData(Object ws,List list,int startcolumn,int startrow,int columns,int[] align) throws Exception {
try {
for(int i=0;i<list.size();i++){
String[] tmpstr = (String[])list.get(i);
for(int j=0;j<columns;j++){
setData(ws,tmpstr[j],startcolumn + j,startrow + i,align[j]);
}
}
} catch (Exception e) {
System.out.println("添加数据,多行操作错误:setMutiRowData");
e.printStackTrace();
throw e;
}
}
//添加数据,多行操作,可设置行高
public void setMutiRowData(Object ws,List list,int startcolumn,int startrow,int columns,int[] align,int rowheight) throws Exception {
try {
for(int i=0;i<list.size();i++){
String[] tmpstr = (String[])list.get(i);
for(int j=0;j<columns;j++){
setData(ws,tmpstr[j],startcolumn + j,startrow + i,align[j]);
setRowHeight(ws,startrow + i,rowheight);
}
}
} catch (Exception e) {
System.out.println("添加数据,多行操作错误:setMutiRowData");
e.printStackTrace();
throw e;
}
}
//添加数据,多行操作,带序号
public void setMutiRowDataAndIndex(Object ws,List list,int startcolumn,int startrow,int columns,int[] align) throws Exception {
try {
for(int i=0;i<list.size();i++){
setData(ws,Integer.toString(i + 1),startcolumn,startrow + i,0);
String[] tmpstr = (String[])list.get(i);
for(int j=0;j<columns;j++){
setData(ws,tmpstr[j],startcolumn + j + 1,startrow + i,align[j]);
}
}
} catch (Exception e) {
System.out.println("添加数据,多行操作错误:setMutiRowDataAndIndex(Object ws,List list,int startcolumn,int startrow,int columns,int[] align)");
e.printStackTrace();
throw e;
}
}
//添加数据,多行操作,可设置行高,带序号
public void setMutiRowDataAndIndex(Object ws,List list,int startcolumn,int startrow,int columns,int[] align,int rowheight) throws Exception {
try {
for(int i=0;i<list.size();i++){
setData(ws,Integer.toString(i + 1),startcolumn,startrow + i,0);
String[] tmpstr = (String[])list.get(i);
for(int j=0;j<columns;j++){
setData(ws,tmpstr[j],startcolumn + j + 1,startrow + i,align[j]);
setRowHeight(ws,startrow + i,rowheight);
}
}
} catch (Exception e) {
System.out.println("添加数据,多行操作错误:setMutiRowDataAndIndex(Object ws,List list,int startcolumn,int startrow,int columns,int[] align,int rowheight)");
e.printStackTrace();
throw e;
}
}
//添加数据,多行操作,可设置行高,第二列带序号
public void setMutiRowDataSecondIndex(Object ws,List list,int startcolumn,int star
没有合适的资源?快使用搜索试试~ 我知道了~
生成EXCEL报表(JAVA的).rar
共26个文件
java:7个
jar:6个
class:6个
5星 · 超过95%的资源 需积分: 9 70 下载量 93 浏览量
2008-11-07
09:17:36
上传
评论 1
收藏 5.96MB RAR 举报
温馨提示
可以简单的生成EXCEL报表,....自己下的看吧~~!!
资源详情
资源评论
资源推荐
收起资源包目录
Excel2K.rar (26个子文件)
报表Excel2K
2 bean封装
ROOT
WEB-INF
web.xml 414B
lib
msbase.jar 278KB
mssqlserver.jar 63KB
catalina-root.jar 5KB
JExcel.jar 11KB
msutil.jar 58KB
jxl.jar 512KB
classes
a_wenjian.java 661B
ExcelOutTemplate.java 19KB
connSqlServer2k.java 2KB
wenjian.java 3KB
ExcelOutTemplate2.java 19KB
hh
ExcelOutTemplate2.class 11KB
wenjian.class 3KB
ExcelOutTemplate.class 11KB
connSqlServer2k.class 2KB
a_wenjian.class 864B
ExcelOut.class 197B
ExcelOut.java 274B
excel2.jsp 364B
excel.jsp 290B
佟Excel
database2000.ldb 448B
database2000.mdb 7.38MB
poi-bin-2.5.1-final-20040804.zip 5.67MB
connJdbcOdbc.java 5KB
1 页面直接变Excel
excel-report.jsp 895B
共 26 条
- 1
jmsjhh1984
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1