在Java中制作对Excel表常用的方式

本文介绍如何使用Java和jxl库生成包含不同样式单元格的Excel表格,详细展示了如何设置字体、背景色,并根据条件应用不同的样式。

在java中制作Excel表,需要先架包:jxl-2.6.jar(或者其他版本),里面比较常用的类有:

1、Workbook;


2、Label;


3、WritableCellFormat;


4、WritableFont;


5、WritableSheet;


6、WritableWorkbook;


       

public void exportDealerRepertory() throws Exception{
		
		WritableWorkbook book = Workbook.createWorkbook(this.file);
		//创建一张表
		WritableSheet sheet = book.createSheet("商品库存信息表", 0);
		
		//表头

		String [] head=new String[]{"商品条码","款号","商品名称","品牌","商品类型","颜色","尺码","单位"}; 
		WritableCellFormat cf = new WritableCellFormat(new WritableFont(WritableFont.createFont("宋体"), 10, WritableFont.NO_BOLD,
				false, UnderlineStyle.NO_UNDERLINE,Colour.RED/*设定字体颜色*/));;
		for(int i=0;i<head.length;i++){
			add(sheet, i, 0, head[i],cf);
		}
		WritableCellFormat cf_green = new WritableCellFormat(cf);
		cf_green.setBackground(Colour.GREEN);//设定背景颜色
		WritableCellFormat cf_red = new WritableCellFormat(cf);
		cf_red.setBackground(Colour.RED);//设定背景颜色
		WritableCellFormat cf_yellow = new WritableCellFormat(cf);
		cf_yellow.setBackground(Colour.YELLOW);//设定背景颜色
		//添加数据
		
		for(int i=0;i<list.size();i++){
			VGoods vGoods=(VGoods)list.get(i);
			int row=i+1;
			if (vGoods.getAmount()!=null&&vGoods.getAmount()>5) {//绿色
				cf = cf_green;
			}else if (vGoods.getAmount()!=null&&vGoods.getAmount()<=0) {//红色
				cf = cf_red;
			}else{//黄色
				cf = cf_yellow;
			}
			add(sheet, 0, row, vGoods.getBarcode(),cf);	//条码
			add(sheet, 1, row, vGoods.getType(),cf);	//款号
			add(sheet, 2, row, vGoods.getName(),cf);	//商品名
			add(sheet, 3, row, vGoods.getBname(),cf);	//品牌
			add(sheet, 4, row, vGoods.getGtname(),cf);	//类型
			add(sheet, 5, row, vGoods.getColor(),cf);	//颜色
			add(sheet, 6, row, vGoods.getSize(),cf);	//尺码
			add(sheet, 7, row, vGoods.getUnit(),cf);	//单位
			
		}
	
		
		//输出
		
		
		book.write();
		book.close();
		
		//将文件通过文件流的方式输出到客户端
		//--
		//设置response对象的相关信息
		
		//输出类型
		response.setContentType("application/x-msdownload");
		
		//文件大小
		response.setContentLength((int) file.length());	
		
		//文件名
		response.setHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes(), "iso-8859-1"));

		   // 从response对象中得到输出流,准备下载
		   ServletOutputStream myout = response.getOutputStream();
		   FileInputStream stream=new FileInputStream(file);
		   byte data[]=new byte[4096];
		   int size=0;
		   size=stream.read(data);
		  
		   // 开始循环写出数据
		   while (size!=-1) {
		    myout.write(data,0,size);
		    size=stream.read(data);
		   }
		   
		   myout.flush();
		   myout.close();
		   stream.close();
		   
		   //删除文件
		   file.delete();
		
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值