`
liuzhiqiang19890403
  • 浏览: 61106 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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);
 }
}

分享到:
评论

相关推荐

    SpringBoot+AntDesignVue实现excel导入功能

    SpringBoot+AntDesignVue 实现 Excel 导入功能 在本篇文章中,我们将介绍如何使用 SpringBoot 和 AntDesignVue 实现 Excel 导入功能。这个功能主要是使用 Ant Design Vue 中的 upload 组件来实现导入 excel 文件的...

    Struts2+Excel导入功能 完整美运行有JAR包

    在Struts2中实现Excel导入功能,可以让用户上传Excel文件,然后在服务器端进行数据处理,例如存储到数据库或者进行数据分析。 在描述中提到的“完整美运行有JAR包”,意味着这个压缩包可能包含了所有必要的库文件,...

    php excel导入功能

    在PHP开发中,实现Excel导入功能是一项常见的需求,特别是在数据处理、数据分析或者用户上传数据时。这个功能允许用户上传Excel文件,然后系统读取并处理其中的数据。在本篇文章中,我们将深入探讨如何使用PHP来实现...

    excel导入的功能实现

    excel导入的功能实现 excel导入的功能实现 excel导入的功能实现

    能实现一对多关联的通用EXCEL导入功能

    在IT行业中,开发一个能实现一对多关联的通用EXCEL导入功能是一项常见的需求,尤其是在数据管理、数据分析或者系统集成的场景下。这个功能允许用户通过上传Excel文件来批量导入包含复杂关系的数据,例如一个学生可以...

    非常详细的用 java(springmvc+mybatis)实现excel导入功能并且保存到数据库

    "Java实现Excel导入功能并保存到数据库" 以下是根据给定的文件信息生成的相关知识点: 知识点1:Java Web开发框架SpringMVC 在本实例中,使用了SpringMVC框架来实现Web应用程序。SpringMVC是一种基于Java的Web...

    C#的Excel导入功能源码(附使用说明)

    在C#编程环境中,开发Excel导入功能是一项常见的需求,尤其在数据处理、报表生成和数据分析等领域。本资源提供了一段源码,适用于处理Office 2003及更高版本的Excel文件,帮助开发者快速实现Excel数据的读取与导入。...

    前端-HTML-Web Excel导入

    在实现Web Excel导入功能时,需要考虑到可能出现的各种错误,如文件读取失败、解析错误等,并提供合适的用户反馈。 通过以上步骤,我们可以实现前端HTML Web Excel导入的功能。这个过程涉及到HTML表单交互、文件...

    Excel导入功能 前端 JQ JS xlsx.core.min.js

    本教程将详细讲解如何在前端实现Excel导入功能,利用jQuery(JQ)和JavaScript(JS)库xlsx.core.min.js来处理Excel文件。 xlsx.core.min.js是一个轻量级的JavaScript库,它专门用于读取和写入Excel文件,支持XLSX...

    使用javaweb+jsp+MySQL实现学生管理CRUD+Excel导入功能

    使用javaweb+jsp实现CRUD+Excel导入功能,无过多依赖。 1、完成学生信息的新增操作 2、完成学生信息的编辑操作 3、完成学生信息的查询操作 4、完成学生信息的删除操作 5、完成学生信息的导入操作 数据库使用的MySQL...

    Java实现Excel导入导出功能

    首先,Java实现Excel导入功能通常涉及解析Excel文件,这主要依赖于Apache POI库。Apache POI是一个开源项目,提供了API来处理Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。使用POI,你可以创建工作簿...

    destoon添加excel数据导入功能.doc

    destoon添加excel数据导入功能,利用phpexcel插件实现destoon的excel导入功能,导入数据到数据表中,并展示,也可在thinkphp中利用该插件实现excel数据的导入和导出

    如何使用驰骋工作流引擎的Excel批量导入功能发起流程

    驰骋工作流引擎Excel批量导入功能发起流程知识点 一、驰骋工作流引擎简介 驰骋工作流引擎是一种强大的工作流引擎,能够帮助用户快速搭建、配置和执行业务流程。它提供了强大的流程管理功能,能够满足企业的各类...

    .net的Excel导入

    本篇文章将详细讲解如何在.NET环境中实现Excel的导入功能,以便网页可以处理Excel数据。 首先,我们需要理解.NET支持的Excel处理库。Microsoft Office Interop是一个直接与Office应用程序交互的库,但不适用于...

    Spring框架实现Excel批量导入数据

    本教程将详细讲解如何利用Spring框架实现Excel数据的批量导入,以提高数据录入效率。 首先,我们需要了解Excel文件的结构。Excel是一种常用的电子表格软件,它的数据通常存储在工作簿(Workbook)中,每个工作簿...

    layui-excel数据导入demo-源码-导入即用

    layui-excel数据导入功能的核心在于,它提供了一种便捷的方式,允许用户直接通过Excel文件导入数据到前端表格中。这一特性极大地简化了数据输入和管理流程,尤其适用于需要大量数据录入的场景。以下我们将详细介绍这...

    Excel数据导入功能

    Excel数据导入功能是一种高效的数据管理方法,特别是在处理大量结构化数据时。在各种项目中,如学生信息系统、班级管理系统或教学楼信息管理等,利用Excel的导入功能可以极大地提高工作效率,避免手动输入数据的繁琐...

    通过excel导入QC

    在IT行业中,质量中心(Quality ...通过以上方法,你可以高效地利用Excel导入功能管理QC中的需求和测试用例,提升项目管理的效率。在实际应用中,不断熟悉和掌握Excel与QC的接口特性,将有助于进一步优化工作流程。

    springboot实现将Excel导入数据库

    要实现Excel导入功能,我们首先需要处理Excel文件。在Java中,我们可以使用Apache POI库来操作Excel文件。POI提供了丰富的API,可以读取、写入Excel文件。在本例中,我们需要使用HSSFWorkbook(对于老版本的Excel ....

Global site tag (gtag.js) - Google Analytics