`

java如何导出带有联动下拉框的excel

    博客分类:
  • java
阅读更多

利用到jxl,poi也是一种用来处理excel的工具类!只不过,jxl比较小,好用!对于下拉框联动的功能

jxl没有直接可以处理的!只能做好模板,然后用jxl往模板写数据!这样做,不完美,仅供参考

 

第一:excel中的联动处理

名称-定义  设置一个区域,用来取值的区域,名称为 第一级别下拉框的选项名

第一级别   下拉框 数据 有效性 序列 值为 选项框 和 前面设置的区域名称相同

第二级别   下拉框 数据 有效性 序列 值为 =INDIRECT(B9) B9为第一级别的下拉框位置

第二:java程序的处理

A:对action进行判断 准备需要的值

 

filePath = CommAttachInfoFactory.rootPath
					+ "/filedata/npForm/scaleTarget/模板录入模板/type-"+types[k]+".xls";
						request.setAttribute("path", filePath);

						try{
							new OperationExcel().UpdateLuruExcel(filePath, temFileName,scaleTaskInfo);
						} catch (Exception e) {
							e.printStackTrace();
						}

 B:具体的操作并生成文件

 

	  public void UpdateLuruExcel(String filename,String overDept,ScaleTargetForm scaleTaskInfo){
		  
		  try{
		  Workbook wb  =  Workbook.getWorkbook(new File(filename)); 
		   WritableWorkbook workbook  =  Workbook.createWorkbook( new  File(filename),wb); 
		   WritableSheet sheet  =  workbook.getSheet(0);
//		   System.out.println("打死我也不相信 怎么可能是空的  怎么可能 scaleTaskInfo.getTask_name():"+scaleTaskInfo.getTask_name()+"  scaleTaskInfo.getTask_start_time(): "+scaleTaskInfo.getTask_start_time());
		   sheet.addCell(new Label(0,1,scaleTaskInfo.getTask_name()+
					"-"+scaleTaskInfo.getTask_start_time()));
		   workbook.write(); 
		   workbook.close(); }catch(Exception e){
			   e.printStackTrace();
		   }
	  }

 附件为 一个做好的三级联动例子

其中 选择区域的值  可以做到另外一个sheet中,这样美观

分享到:
评论
1 楼 keepdoing 2013-03-21  
垃圾!!!

相关推荐

Global site tag (gtag.js) - Google Analytics