EXCL导入功能

package monad.web.web.action;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.read.biff.BiffException;
import monad.utils.CommonUtils;
import monad.web.service.PljsService;
import monad.web.service.QwjsService;
import base.web.action.AutoStruts2Action;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.egf.common.util.StringUtils;

public class PljsAction extends AutoStruts2Action{
 
 private static final long serialVersionUID = -9187258419377047631L;
 private PljsService pljsService;

 private String excelName;
 private String excelNameFileName;// 文件名
 private QwjsService qwjsService;
 
 public void setPljsService(PljsService pljsService) {
  this.pljsService = pljsService;
 }
 public void setQwjsService(QwjsService qwjsService) {
  this.qwjsService = qwjsService;
 }
 public void setExcelName(String excelName) {
  this.excelName = excelName;
 }
 public void setExcelNameFileName(String excelNameFileName) {
  this.excelNameFileName = excelNameFileName;
 }
 public String tosearch(){
  return "search";
 }
 
 /**
  * 导入数据
  * @return
  */
 @SuppressWarnings("null")
 public String impDatas(){
  WorkbookSettings workbookSettings=new WorkbookSettings();
        workbookSettings.setEncoding("ISO-8859-1"); //关键代码,解决中文乱码
        Map<String,List<String[]>> resultDate = new LinkedHashMap<String,List<String[]>>();
  //输入流  
  InputStream fis = null;
  try {
   fis = new FileInputStream(excelName);
  } catch (FileNotFoundException e) {
   e.printStackTrace();
   try {
    fis.close();
   } catch (IOException e1) {
    e1.printStackTrace();
   }
  }  
  //得到解析Excel的实体集合  
  //打开文件
  try {
   Workbook book = Workbook.getWorkbook(fis,workbookSettings);
   //TODO 获取页签的名称
   Sheet[] sheets = book.getSheets();
   for(int s=0;s<sheets.length;s++){
    Sheet sheet = sheets[s];
    String sheet_name = sheet.getName();
    //行数
    int rowCount = sheet.getRows();
    if(rowCount>=100){
     request.put("msg", "excel文件数据不得超过100条!!");
     return "search";
    }
    List<String[]> datas = new ArrayList<String[]>();
    for (int i = 0; i < rowCount; i++) {
     //一行有几列
     Cell[] cells = sheet.getRow(i);
     String[] str = new String[cells.length];
     //TODO excel文件数据被删除后还是加载原先行数,需要进行相关的处理
     for(int j=0; j<cells.length;j++){
      String ct = cells[j].getContents().replaceAll(" ", " ").replaceAll(" ", " ");
      str[j] = StringUtils.blank(ct) ?  ct : ct.trim();
     }
     datas.add(str);
    }
    resultDate.put(sheet_name, datas);
   }
   logger.debug(""+resultDate);
   request.put("ResultDate", resultDate);
  } catch (BiffException e) {
   e.printStackTrace();
   try {
    fis.close();
   } catch (IOException e1) {
    e1.printStackTrace();
   }
  } catch (IOException e) {
   e.printStackTrace();
   try {
    fis.close();
   } catch (IOException e1) {
    e1.printStackTrace();
   }
  } finally{
   try {
    fis.close();
   } catch (IOException e1) {
    e1.printStackTrace();
   }
  }
  
  return "reslist";
 }
 
 /**
  * 批量数据处理
  * @return
  */
 public String plsj(){
        Set<String> set = new HashSet<String>();
        String data_index = servletRequest.getParameter("data_index");
        String sheet_name = servletRequest.getParameter("sheet_name");
        String input_name = "_keyword_"+sheet_name+"_"+data_index;
        String[] keywords = servletRequest.getParameterValues(input_name);
        for(String keyword : keywords){
   keyword = keyword.replaceAll(" ", " ").replaceAll(" ", " ");
   if(!StringUtils.blank(keyword)){
    if(!StringUtils.blank(keyword.trim())){
     set.add(keyword.trim());
    }
   }
  }
  pljs(set);
  return "allresult";
 }
 
 /**
  * 批量检索
  * @return
  */
 public void pljs(Set<String> set){
  JSONArray keyWordsTree = new JSONArray();
  JSONObject root = new JSONObject();
  root.put("name", "关闭/展开");
  root.put("open", true);
  root.put("iconSkin", "pIcon01");

  JSONArray childrenJson = new JSONArray();
  
  for(String keyword : set){
   JSONObject groupJson = new JSONObject();
   groupJson.put("name", keyword+"(0)");
   groupJson.put("key_id", keyword);
   groupJson.put("encd_key_id", CommonUtils.encode(keyword, "utf-8"));
   childrenJson.add(groupJson);
  }
  root.put("children", childrenJson);
  keyWordsTree.add(root);
  logger.debug("KeyWordsTree="+keyWordsTree);
  request.put("KeyWordsTree", keyWordsTree);
  request.put("KeyWords", set);
 }
}

猜你喜欢

转载自liuzhiqiang19890403.iteye.com/blog/2088397