使用jxl创建并写入excel

  最近在做一个小项目,因为要把数据保存到Excel,所以采用了比较简单易用的jxl进行Excel的操作

代码如下:


public class AppendExcelTask implements IThreadTask {
	
 private final static String[] headers = {"申请编号", "宝宝姓名", "宝宝生日", "宝宝性别", "宝宝年龄","家长姓名","手机号码","填表时间","洽谈地址","填表人"};
 private final static int [] lengths = {35,10,20,10,15,10,20,20,35,10};
	
	Apply apply;
	String filePath;
	String fileName;
	public AppendExcelTask(Apply apply,	String filePath,String fileName){
		this.apply=apply;
		this.filePath=filePath;
		this.fileName=fileName;
		
	}
	/* (non-Javadoc)
	 * @see java.lang.Runnable#run()
	 */
	@Override
	public void run() {
		// TODO implement AppendExcelTask.run
		//System.out.println(apply.toString());
		WritableCellFormat headerFormat = new WritableCellFormat();
		
		 WritableWorkbook workbook = null; 
		//创建空白Excel文件,如果文件已经存在,为了避免覆盖已有文件引起的麻烦,直接返回 
		 File file = new File(filePath+fileName);  
	        if (file.exists()) {  
	        	try {
	        		Workbook book = Workbook.getWorkbook(file);
	                workbook = Workbook.createWorkbook(file, book);
				} catch (Exception e) {
					// TODO: handle exception
					e.printStackTrace();
				}
	        	
	        } else {  
	            try {  
	                file.createNewFile(); 
	                workbook = Workbook.createWorkbook(file);
	            } catch (Exception e) {  
	                e.printStackTrace();  
	                 
	            }  
	  
	        } 
	        
	        try {
	        	 headerFormat.setAlignment(Alignment.CENTRE);
	        	 WritableSheet sheet = null;  
	        	 int sheets = workbook.getSheets().length;
	        	
	             if (sheets == 0) {  
	                 sheet = workbook.createSheet("第1页", 0);  
	                 for (int i = 0; i < headers.length; i++) {  
	                     Label label = new Label(i, 0 , headers[i],headerFormat);  
	                     sheet.addCell(label);  
	                     sheet.setColumnView(i, lengths[i]);
	                 }
	             } else {  
	            	//如果最后一页表格的行数大于65535,就新建一页表格
	            	 if(workbook.getSheet(sheets-1).getRows()==65535){
	            		 sheet = workbook.createSheet("第"+(sheets+1)+"页", sheets-1);
            			 for (int j = 0; j < headers.length; j++) {  
    	                     Label label = new Label(j, 0 , headers[j],headerFormat);  
    	                     sheet.addCell(label); 
    	                     sheet.setColumnView(j, lengths[j]);//设置单元格宽度
    	                 }
	            	 }else{
	            		 sheet = workbook.getSheet(sheets-1);
	            	 }

	                  
	             }  
	             CellView cellView = new CellView();  
	             cellView.setAutosize(true); //设置自动大小
	             cellView.setSize(10);
	            

	            
	            //为每一列设值
	            int c = sheet.getRows();
	            sheet.addCell(new Label(0, c, apply.getApplyCode()));
	            sheet.addCell(new Label(1, c, apply.getBabyName()));
	            sheet.addCell(new Label(2, c, apply.getBirthDay()));
	            sheet.addCell(new Label(3, c, apply.getSex()));
	            sheet.addCell(new Label(4, c, apply.getAge()));
	            sheet.addCell(new Label(5, c, apply.getParentName()));
	            sheet.addCell(new Label(6, c, apply.getPhone()));
	            sheet.addCell(new Label(7, c, apply.getFormTime()));
	            sheet.addCell(new Label(8, c, apply.getAddress()));
	            sheet.addCell(new Label(9, c, apply.getFromUser()));
	            

	            workbook.write(); 
			} catch (Exception e) {
				// TODO: handle exception
			} finally {  
	            try {  
	                workbook.close();  
	            } catch (Exception e) {  
	                e.printStackTrace();  
	            }  
	        }  
		
	}
	
	
	 
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值