java导出报表Excel.docx

上传人:b****9 文档编号:23361448 上传时间:2023-05-16 格式:DOCX 页数:13 大小:18.31KB
下载 相关 举报
java导出报表Excel.docx_第1页
第1页 / 共13页
java导出报表Excel.docx_第2页
第2页 / 共13页
java导出报表Excel.docx_第3页
第3页 / 共13页
java导出报表Excel.docx_第4页
第4页 / 共13页
java导出报表Excel.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

java导出报表Excel.docx

《java导出报表Excel.docx》由会员分享,可在线阅读,更多相关《java导出报表Excel.docx(13页珍藏版)》请在冰豆网上搜索。

java导出报表Excel.docx

java导出报表Excel

Java导出excel表格

2013-06-0111:

03:

56我来说两句作者:

zhuangjixiang

收藏

我要投稿

[java]

之前做项目的时候需要数据库导出excel格式,由于项目赶没完成,现在分享下如何用java导出excel。

话不多说案例如下:

之前做项目的时候需要数据库导出excel格式,由于项目赶没完成,现在分享下如何用java导出excel。

话不多说案例如下:

首先要做的是导入一个jxl的包,网上很多。

首先是不连接数据库数据

[java]

packagejxlTest;

importjava.io.FileOutputStream;

importjava.io.OutputStream;

importjava.text.SimpleDateFormat;

importjava.util.ArrayList;

importjava.util.Date;

importjava.util.List;

importjxl.*;

importjxl.format.Alignment;

importjxl.format.Border;

importjxl.format.BorderLineStyle;

importjxl.format.CellFormat;

importjxl.write.Boolean;

importjxl.write.Label;

importjxl.write.Number;

importjxl.write.WritableCellFormat;

importjxl.write.WritableFont;

importjxl.write.WritableSheet;

importjxl.write.WritableWorkbook;

publicclassJXLExample{

/**

*数据库导出至Excel表格

*/

publicstaticvoidmain(String[]args){

//准备设置excel工作表的标题

String[]title={"编号","产品名称","产品价格","产品数量","生产日期","产地","是否出口"};

try{

//获得开始时间

longstart=System.currentTimeMillis();

//输出的excel的路径

StringfilePath="e:

\\testJXL.xls";

//创建Excel工作薄

WritableWorkbookwwb;

//新建立一个jxl文件,即在e盘下生成testJXL.xls

OutputStreamos=newFileOutputStream(filePath);

wwb=Workbook.createWorkbook(os);

//添加第一个工作表并设置第一个Sheet的名字

WritableSheetsheet=wwb.createSheet("产品清单",0);

Labellabel;

for(inti=0;i

//Label(x,y,z)代表单元格的第x+1列,第y+1行,内容z

//在Label对象的子对象中指明单元格的位置和内容

label=newLabel(i,0,title[i]);

//将定义好的单元格添加到工作表中

sheet.addCell(label);

}

//下面是填充数据

/*

*保存数字到单元格,需要使用jxl.write.Number

*必须使用其完整路径,否则会出现错误

**/

//填充产品编号

jxl.write.Numbernumber=newjxl.write.Number(0,1,20071001);

sheet.addCell(number);

//填充产品名称

label=newLabel(1,1,"金鸽瓜子");

sheet.addCell(label);

/*

*定义对于显示金额的公共格式

*jxl会自动实现四舍五入

*例如2.456会被格式化为2.46,2.454会被格式化为2.45

**/

jxl.write.NumberFormatnf=newjxl.write.NumberFormat("#.##");

jxl.write.WritableCellFormatwcf=newjxl.write.WritableCellFormat(nf);

//填充产品价格

jxl.write.Numbernb=newjxl.write.Number(2,1,2.45,wcf);

sheet.addCell(nb);

//填充产品数量

jxl.write.Numbernumb=newjxl.write.Number(3,1,200);

sheet.addCell(numb);

/*

*定义显示日期的公共格式

*如:

yyyy-MM-ddhh:

mm

**/

SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");

Stringnewdate=sdf.format(newDate());

//填充出产日期

label=newLabel(4,1,newdate);

sheet.addCell(label);

//填充产地

label=newLabel(5,1,"陕西西安");

sheet.addCell(label);

/*

*显示布尔值

**/

jxl.write.Booleanbool=newjxl.write.Boolean(6,1,true);

sheet.addCell(bool);

/*

*合并单元格

*通过writablesheet.mergeCells(intx,inty,intm,intn);来实现的

*表示将从第x+1列,y+1行到m+1列,n+1行合并

*

**/

sheet.mergeCells(0,3,2,3);

label=newLabel(0,3,"合并了三个单元格");

packagejxlTest;

importjava.io.FileOutputStream;

importjava.io.OutputStream;

importjava.text.SimpleDateFormat;

importjava.util.ArrayList;

importjava.util.Date;

importjava.util.List;

importjxl.*;

importjxl.format.Alignment;

importjxl.format.Border;

importjxl.format.BorderLineStyle;

importjxl.format.CellFormat;

importjxl.write.Boolean;

importjxl.write.Label;

importjxl.write.Number;

importjxl.write.WritableCellFormat;

importjxl.write.WritableFont;

importjxl.write.WritableSheet;

importjxl.write.WritableWorkbook;

publicclassJXLExample{

/**

*数据库导出至Excel表格

*/

publicstaticvoidmain(String[]args){

//准备设置excel工作表的标题

String[]title={"编号","产品名称","产品价格","产品数量","生产日期","产地","是否出口"};

try{

//获得开始时间

longstart=System.currentTimeMillis();

//输出的excel的路径

StringfilePath="e:

\\testJXL.xls";

//创建Excel工作薄

WritableWorkbookwwb;

//新建立一个jxl文件,即在e盘下生成testJXL.xls

OutputStreamos=newFileOutputStream(filePath);

wwb=Workbook.createWorkbook(os);

//添加第一个工作表并设置第一个Sheet的名字

WritableSheetsheet=wwb.createSheet("产品清单",0);

Labellabel;

for(inti=0;i

//Label(x,y,z)代表单元格的第x+1列,第y+1行,内容z

//在Label对象的子对象中指明单元格的位置和内容

label=newLabel(i,0,title[i]);

//将定义好的单元格添加到工作表中

sheet.addCell(label);

}

//下面是填充数据

/*

*保存数字到单元格,需要使用jxl.write.Number

*必须使用其完整路径,否则会出现错误

**/

//填充产品编号

jxl.write.Numbernumber=newjxl.write.Number(0,1,20071001);

sheet.addCell(number);

//填充产品名称

label=newLabel(1,1,"金鸽瓜子");

sheet.addCell(label);

/*

*定义对于显示金额的公共格式

*jxl会自动实现四舍五入

*例如2.456会被格式化为2.46,2.454会被格式化为2.45

**/

jxl.write.NumberFormatnf=newjxl.write.NumberFormat("#.##");

jxl.write.WritableCellFormatwcf=newjxl.write.WritableCellFormat(nf);

//填充产品价格

jxl.write.Numbernb=newjxl.write.Number(2,1,2.45,wcf);

sheet.addCell(nb);

//填充产品数量

jxl.write.Numbernumb=newjxl.write.Number(3,1,200);

sheet.addCell(numb);

/*

*定义显示日期的公共格式

*如:

yyyy-MM-ddhh:

mm

**/

SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");

Stringnewdate=sdf.format(newDate());

//填充出产日期

label=newLabel(4,1,newdate);

sheet.addCell(label);

//填充产地

label=newLabel(5,1,"陕西西安");

sheet.addCell(label);

/*

*显示布尔值

**/

jxl.write.Booleanbool=newjxl.write.Boolean(6,1,true);

sheet.addCell(bool);

/*

*合并单元格

*通过writablesheet.mergeCells(intx,inty,intm,intn);来实现的

*表示将从第x+1列,y+1行到m+1列,n+1行合并

*

**/

sheet.mergeCells(0,3,2,3);

label=newLabel(0,3,"合并了三个单元格");[java]viewplaincopyprint?

sheet.addCell(label);

*

*

*定义公共字体格式

*通过获取一个字体的样式来作为模板

*首先通过web.getSheet(0)获得第一个sheet

*然后取得第一个sheet的第二列,第一行也就是"产品名称"的字体

**/

CellFormatcf=wwb.getSheet(0).getCell(1,0).getCellFormat();

WritableCellFormatwc=newWritableCellFormat();

//设置居中

wc.setAlignment(Alignment.CENTRE);

//设置边框线

wc.setBorder(Border.ALL,BorderLineStyle.THIN);

//设置单元格的背景颜色

wc.setBackground(jxl.format.Colour.RED);

label=newLabel(1,5,"字体",wc);

sheet.addCell(label);

//写入数据

wwb.write();

//关闭文件

wwb.close();

longend=System.currentTimeMillis();

System.out.println("----完成该操作共用的时间是:

"+(end-start)/1000);

}catch(Exceptione){

System.out.println("---出现异常---");

e.printStackTrace();

}

}

sheet.addCell(label);

/*

*

*定义公共字体格式

*通过获取一个字体的样式来作为模板

*首先通过web.getSheet(0)获得第一个sheet

*然后取得第一个sheet的第二列,第一行也就是"产品名称"的字体

**/

CellFormatcf=wwb.getSheet(0).getCell(1,0).getCellFormat();

WritableCellFormatwc=newWritableCellFormat();

//设置居中

wc.setAlignment(Alignment.CENTRE);

//设置边框线

wc.setBorder(Border.ALL,BorderLineStyle.THIN);

//设置单元格的背景颜色

wc.setBackground(jxl.format.Colour.RED);

label=newLabel(1,5,"字体",wc);

sheet.addCell(label);

//写入数据

wwb.write();

//关闭文件

wwb.close();

longend=System.currentTimeMillis();

System.out.println("----完成该操作共用的时间是:

"+(end-start)/1000);

}catch(Exceptione){

System.out.println("---出现异常---");

e.printStackTrace();

}

}

}

其次是关联到oracle的数据库数据

[java]

packagezjx;

importjava.io.FileOutputStream;

importjava.io.OutputStream;

importjava.text.SimpleDateFormat;

importjava.util.ArrayList;

importjava.util.Date;

importjava.util.List;

importdao.ProductDao;

importdao.impl.ProductDaoImpl;

importentity.Product;

importjxl.*;

importjxl.format.Alignment;

importjxl.format.Border;

importjxl.format.BorderLineStyle;

importjxl.format.CellFormat;

importjxl.write.Boolean;

importjxl.write.Label;

importjxl.write.Number;

importjxl.write.WritableCellFormat;

importjxl.write.WritableFont;

importjxl.write.WritableSheet;

importjxl.write.WritableWorkbook;

publicclassDemoXls{

/**

*数据库导出至Excel表格

*/

publicstaticvoidmain(String[]args){

//准备设置excel工作表的标题

String[]title={"编号","产品名称","产品类型","计量类型"};

try{

//获得开始时间

longstart=System.currentTimeMillis();

//输出的excel的路径

StringfilePath="e:

\\testJXL2.xls";

//创建Excel工作薄

WritableWorkbookwwb;

//新建立一个jxl文件,即在e盘下生成testJXL.xls

OutputStreamos=newFileOutputStream(filePath);

wwb=Workbook.createWorkbook(os);

//添加第一个工作表并设置第一个Sheet的名字

WritableSheetsheet=wwb.createSheet("产品清单",0);

Labellabel;

for(inti=0;i

//Label(x,y,z)代表单元格的第x+1列,第y+1行,内容z

//在Label对象的子对象中指明单元格的位置和内容

label=newLabel(i,0,title[i]);

//将定义好的单元格添加到工作表中

sheet.addCell(label);

}

//下面是填充数据

/*

*保存数字到单元格,需要使用jxl.write.Number

*必须使用其完整路径,否则会出现错误

**/

ProductDaodao=newProductDaoImpl();

Listlist=dao.queryAll();

for(inti=0;i

//填充产品编号

jxl.write.Numbernumber=newjxl.write.Number(0,i+1,list.get(i).getProductId());

sheet.addCell(number);

//填充产品名称

label=newLabel(1,i+1,list.get(i).getProductName());

sheet.addCell(label);

jxl.write.Numbertype=newjxl.write.Number(2,i+1,list.get(i).getProductTypeId());

sheet.addCell(type);

jxl.write.Numbermeasure=newjxl.write.Number(3,i+1,list.get(i).getMeasureTypeId());

sheet.addCell(measure);

}

//写入数据

wwb.write();

//关闭文件

wwb.close();

longend=System.currentTimeMillis();

System.out.println("----完成该操作共用的时间是:

"+(end-start)/1000);

}catch(Exceptione){

System.out.println("---出现异常---");

e.printStackTrace();

}

}

}

packagezjx;

importjava.io.FileOutputStream;

importjava.io.OutputStream;

importjava.text.SimpleDateFormat;

importjava.util.ArrayList;

importjava.util.Date;

importjava.util.List;

importdao.ProductDao;

importdao.impl.ProductDaoImpl;

importentity.Product;

importjxl.*;

importjxl.format.Alignment;

importjxl.format.Border;

importjxl.format.BorderLineStyle;

importjxl.format.CellFormat;

importjxl.write.Boolean;

importjxl.write.Label;

importjxl.write.Number;

importjxl.write.WritableCellFormat;

importjxl.write.WritableFont;

importjxl.write.WritableSheet;

importjxl.write.WritableWorkbook;

publicclassDemoXls{

/**

*数据库导出至Excel表格

*/

publicstaticvoidmain(String[]args){

//准备设置excel工作表的标题

String[]title={"编号","产品名称","产品类型",

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1