利用到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中,这样美观