导入excel
eg
创建url 创建工单薄 创建工单页 定义行数 定义单元格 输出流 获取单元格的值
/** 工单导入* */
public String importExcelData() throws Exception {
try {
// 创建工单薄
Workbook book = Workbook.getWorkbook(myFile);
// 创建一个工单页
Sheet sheet = book.getSheet(0);
// 行数
int rows = sheet.getRows();
Map<String, List<ComplaintsListVo>> map = complaintsmanager
.importMemberExcel(sheet, rows);
boolean b = true;
// 判断导入的错误数据
List<ComplaintsListVo> falseQmv = map.get("false");
if (falseQmv != null && falseQmv.size() > 0) {
b = false;
}
// json数组
JSONArray jsonObject = null;
// json配置
JsonConfig jc = new JsonConfig();
// 导入的数据无误
if (b) {
setListmember(map.get("all"));
setFalsemember(map.get("false"));
setSuccessmember(map.get("success"));
// 数据入库
complaintsmanager.saveImportMember((List<ComplaintsListVo>) map
.get("all"));
jsonObject = JSONArray.fromObject(listmember, jc);
setJsondata("{success:true,data:" + jsonObject.toString() + "}");
Struts2Utils.getSession().setAttribute("excellist", listmember);
} else {
setListmember(map.get("all"));
setSuccessmember(map.get("success"));
setFalsemember(map.get("false"));
jsonObject = JSONArray.fromObject(falsemember, jc);
setJsondata("{success:false,data:" + jsonObject.toString()
+ "}");
Struts2Utils.getSession().setAttribute("excellist", listmember);
}
} catch (Exception e) {
logger.error("", e);
setReturnmessage("[ 读取文件失败,请使用标准模板导入文件! ]");
}
return "json";
}
public Map<String, List<ComplaintsListVo>> importMemberExcel(Sheet sheet,
int rows) {
Map<String, List<ComplaintsListVo>> map = new HashMap<String, List<ComplaintsListVo>>();
List<ComplaintsListVo> success = new ArrayList<ComplaintsListVo>();
List<ComplaintsListVo> failed = new ArrayList<ComplaintsListVo>();
List<ComplaintsListVo> listqmv = new ArrayList<ComplaintsListVo>();
try{
for(int i=1;i<rows;i++){
Cell[] cell = sheet.getRow(i);
ComplaintsListVo clv = new ComplaintsListVo();
StringBuilder sb = new StringBuilder();//输出流
//判断所在的行是否有数据
if(cell.length==0){
System.out.println(i);
sb.append("所在行数据为空,格式错误!");
}
if(cell.length>52){
sb.append("你所在的行数据超过52列,系统无法处理");
}else{
//对每一行的数据进行循环处理
for(int j=0;j<cell.length;j++){
switch (j) {
/**投诉类型处理**/
case 0:
String gdtype = cell[0].getContents();//得到列的工单类型
if(null==gdtype||"".equals(gdtype)){
clv.setGdType("工单类型不能为空");
sb.append("|");
}else{
if("投诉".equals(gdtype)||"差错".equals(gdtype)||"建议".equals(gdtype)||"表扬".equals
(gdtype)){
clv.setGdType(gdtype);
}else{
sb.append("工单类型错误");
sb.append("|");
}
}
break;
/**投诉来源管理**/
case 1:
String tsfrom= cell[1].getContents();
if(null==tsfrom||"".equals(tsfrom)){
sb.append("投诉来源不能为空");
}else{
clv.setTsFrom(tsfrom);
}
clv.setTsFrom(tsfrom.trim());
break;
/**产品类型管理**/
//还有相应的字段
}
}
}
if (!"".equals(sb.toString().trim())) {
failed.add(clv);
listqmv.add(clv);
} else {
sb.append("符合规则");
success.add(clv);
listqmv.add(clv);
}
}
map.put("success", success);
map.put("false", failed);
map.put("all", listqmv);
return map;
}catch (Exception e) {
e.printStackTrace();
ComplaintsListVo qmv = new ComplaintsListVo();
listqmv.add(qmv);
map.put("sucess", success);
map.put("false", failed);
map.put("all", listqmv);
return map;
}
}