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 导入功能。这个功能主要是使用 Ant Design Vue 中的 upload 组件来实现导入 excel 文件的...
在Struts2中实现Excel导入功能,可以让用户上传Excel文件,然后在服务器端进行数据处理,例如存储到数据库或者进行数据分析。 在描述中提到的“完整美运行有JAR包”,意味着这个压缩包可能包含了所有必要的库文件,...
在PHP开发中,实现Excel导入功能是一项常见的需求,特别是在数据处理、数据分析或者用户上传数据时。这个功能允许用户上传Excel文件,然后系统读取并处理其中的数据。在本篇文章中,我们将深入探讨如何使用PHP来实现...
excel导入的功能实现 excel导入的功能实现 excel导入的功能实现
在IT行业中,开发一个能实现一对多关联的通用EXCEL导入功能是一项常见的需求,尤其是在数据管理、数据分析或者系统集成的场景下。这个功能允许用户通过上传Excel文件来批量导入包含复杂关系的数据,例如一个学生可以...
"Java实现Excel导入功能并保存到数据库" 以下是根据给定的文件信息生成的相关知识点: 知识点1:Java Web开发框架SpringMVC 在本实例中,使用了SpringMVC框架来实现Web应用程序。SpringMVC是一种基于Java的Web...
在C#编程环境中,开发Excel导入功能是一项常见的需求,尤其在数据处理、报表生成和数据分析等领域。本资源提供了一段源码,适用于处理Office 2003及更高版本的Excel文件,帮助开发者快速实现Excel数据的读取与导入。...
在实现Web Excel导入功能时,需要考虑到可能出现的各种错误,如文件读取失败、解析错误等,并提供合适的用户反馈。 通过以上步骤,我们可以实现前端HTML Web Excel导入的功能。这个过程涉及到HTML表单交互、文件...
本教程将详细讲解如何在前端实现Excel导入功能,利用jQuery(JQ)和JavaScript(JS)库xlsx.core.min.js来处理Excel文件。 xlsx.core.min.js是一个轻量级的JavaScript库,它专门用于读取和写入Excel文件,支持XLSX...
使用javaweb+jsp实现CRUD+Excel导入功能,无过多依赖。 1、完成学生信息的新增操作 2、完成学生信息的编辑操作 3、完成学生信息的查询操作 4、完成学生信息的删除操作 5、完成学生信息的导入操作 数据库使用的MySQL...
首先,Java实现Excel导入功能通常涉及解析Excel文件,这主要依赖于Apache POI库。Apache POI是一个开源项目,提供了API来处理Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。使用POI,你可以创建工作簿...
destoon添加excel数据导入功能,利用phpexcel插件实现destoon的excel导入功能,导入数据到数据表中,并展示,也可在thinkphp中利用该插件实现excel数据的导入和导出
驰骋工作流引擎Excel批量导入功能发起流程知识点 一、驰骋工作流引擎简介 驰骋工作流引擎是一种强大的工作流引擎,能够帮助用户快速搭建、配置和执行业务流程。它提供了强大的流程管理功能,能够满足企业的各类...
本篇文章将详细讲解如何在.NET环境中实现Excel的导入功能,以便网页可以处理Excel数据。 首先,我们需要理解.NET支持的Excel处理库。Microsoft Office Interop是一个直接与Office应用程序交互的库,但不适用于...
本教程将详细讲解如何利用Spring框架实现Excel数据的批量导入,以提高数据录入效率。 首先,我们需要了解Excel文件的结构。Excel是一种常用的电子表格软件,它的数据通常存储在工作簿(Workbook)中,每个工作簿...
layui-excel数据导入功能的核心在于,它提供了一种便捷的方式,允许用户直接通过Excel文件导入数据到前端表格中。这一特性极大地简化了数据输入和管理流程,尤其适用于需要大量数据录入的场景。以下我们将详细介绍这...
Excel数据导入功能是一种高效的数据管理方法,特别是在处理大量结构化数据时。在各种项目中,如学生信息系统、班级管理系统或教学楼信息管理等,利用Excel的导入功能可以极大地提高工作效率,避免手动输入数据的繁琐...
在IT行业中,质量中心(Quality ...通过以上方法,你可以高效地利用Excel导入功能管理QC中的需求和测试用例,提升项目管理的效率。在实际应用中,不断熟悉和掌握Excel与QC的接口特性,将有助于进一步优化工作流程。
要实现Excel导入功能,我们首先需要处理Excel文件。在Java中,我们可以使用Apache POI库来操作Excel文件。POI提供了丰富的API,可以读取、写入Excel文件。在本例中,我们需要使用HSSFWorkbook(对于老版本的Excel ....