package com.sml.eplatform.admin.ui.action;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.sml.eplatform.admin.mdl.User;
import com.sml.eplatform.admin.util.AuditLogHelper;
import com.sml.eplatform.admin.util.EncryptionUtil;
import com.sml.eplatform.admin.util.ImportAWIUserAccountUtil;
import com.sml.eplatform.admin.util.ImportExternalUserUtil;
import com.sml.eplatform.base.dao.DbManager;
import com.sml.eplatform.common.util.ExcelUtil;
import com.sml.eplatform.common.util.JsonString;
import com.sml.eplatform.common.util.StringUtils;
public class ImportUserAccountAction extends Action {
private final static String[] exlColumnTtile = new String[]{
"loginId", "userName", "passWord", "defaultLanguage", "phoneNumber", "email",
"companyAcountLoginId"};
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, Exception {
request.setCharacterEncoding("UTF-8");
try {
User user = AdminSessionHelper.getUser(request);
Map<String, Object> result = new HashMap<String, Object>();
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List item = upload.parseRequest(request);
Iterator it = item.iterator();
FileItem fileItem = (FileItem) it.next();
InputStream in = fileItem.getInputStream();
String message = importUserAccount(in);
System.out.println("Excel Error Message: "+message);
result.put("result", message);
AuditLogHelper.log(user, AuditLogHelper.CREATE,
"Import User Account User", user.getUserName(), user
.getIpAddress());
JsonString.writeJsonString(response, result);
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
public String importUserAccount(InputStream in){
String errorMsg = null;
List<Map> list = new ArrayList<Map>();
errorMsg = readExcelRowColumn(in,list);
if (errorMsg != null) {
return errorMsg;
}
insertUserProperty(list);
return null;
}
private String readExcelRowColumn(InputStream in, List<Map> list) {
Workbook workbook = null;
try {
workbook = Workbook.getWorkbook(in);
Sheet sheet = workbook.getSheet(0);
int excelRecordCount = ExcelUtil.getRightRows(sheet);
if (excelRecordCount <= 1) {
return "The excel is empty, please check.";
}
Cell[] cellHead = sheet.getRow(0);
Map<String, Integer> headMap = new HashMap<String, Integer>();
String errorMsg = ExcelUtil.checkColumnTitle(cellHead, headMap, exlColumnTtile);
if (errorMsg != null && !"".equals(errorMsg)) {
return errorMsg;
}
for (int i = 1; i < excelRecordCount; i++) {
Map<String, String> map = new HashMap<String, String>();
for (String columnValue : exlColumnTtile) {
String exlContent = sheet.getCell(headMap.get(columnValue), i).getContents();
map.put(columnValue, exlContent.trim());
}
list.add(map);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
workbook.close();
in.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
return null;
}
private void insertUserProperty(List<Map> list) {
DbManager dbManager = DbManager.getInstance();
Connection conn = null;
Statement st = null;
try {
conn = dbManager.getEplatformConnection();
conn.setAutoCommit(false);
st = conn.createStatement();
for (Map<String, String> map : list) {
String loginId = map.get("loginId");
String userName = map.get("userName");
String passWord = EncryptionUtil.encryption(map.get("passWord"));
String defaultLanguage = map.get("defaultLanguage");
String phoneNumber = map.get("phoneNumber");
String email = map.get("email");
String companyAcountLoginId = map.get("companyAcountLoginId");
st.addBatch("INSERT INTO ep_importing_user_account(login_id,user_name,password,default_language,phone_number,email,company_acount_login_id,error_msg)"
+" VALUES ('"+loginId+"','"+userName+"','"+passWord+"','"+defaultLanguage+"','"+phoneNumber+"','"+email+"','"+companyAcountLoginId+"','')");
}
st.executeBatch();
conn.commit();
} catch (Throwable ex) {
dbManager.rollbackQuietly(conn);
ex.printStackTrace();
} finally {
dbManager.close(conn, st, null);
}
}
}
分享到:
相关推荐
标题中的“exls导入到mysql类”指的是将Excel(通常拼写为Excel,可能是输入错误)数据导入到MySQL数据库的过程。这是一个常见的数据处理任务,特别是在数据分析、报表生成或系统集成等场景中。以下是对这个主题的...
在本文中,我们将深入探讨如何使用SpringBoot框架搭建一个能够解析Excel文件并生成Excel文件的示例项目。SpringBoot以其简化Java应用开发的特性,使得处理Excel数据变得更加便捷。我们将主要涉及以下几个知识点: 1...
开发者可以使用WinForm来设计图形化界面,与用户交互,并通过此界面与后台数据库进行数据操作。 现在,我们来讨论如何使用WInform程序将Excel数据导入SQL Server: 1. **创建WinForm项目**:首先,你需要在Visual ...
"exls导入导出"这个主题涉及到如何将外部数据引入Excel表格,以及如何将Excel中的数据导出到其他应用程序或文件格式。下面将详细讲解这个知识点。 **一、Excel数据导入** 1. **文本文件导入**:Excel支持导入多种...
在给定的压缩包中,`readExcel2003.jsp`和`readExcel2007.jsp`应该是两个JavaServer Pages(JSP)文件,它们分别展示了如何在Web应用中使用上述Java代码读取Excel文件。`说明.txt`可能包含了对这些示例的解释或使用...
10. **Web应用集成**:如果是在Web应用中上传Excel,开发者需要了解如何在前端捕获文件,使用FormData对象发送文件,并在后端处理接收到的文件内容。 通过掌握以上知识点,我们可以高效且安全地完成Excel文档的上传...
综上所述,开发一个支持多种文件类型上传的APP涉及多个技术环节,从客户端的UI交互到服务器端的接口设计,再到数据传输的安全和用户体验,每一个环节都需要精心设计和实现。开发者需要具备扎实的前端和后端技术,...
设计计算电路中的 431外围元件 参数 很方便的
水平仪测试直线度计算exls
在“Exls表”可能是笔误,应该是“Excel表”,可能用于描述代码结构或者数据库设计。而“blog.sql”文件是数据库样本数据,可以导入到MySQL数据库中,通过phpmyadmin这样的工具执行SQL语句,快速填充博客系统所需的...
本项目涉及的知识点是使用C#将Excel文件的数据高效地导入到SQL Server数据库中。这种操作在数据迁移、数据分析和批量处理场景中非常常见。 首先,我们需要了解C#与Excel交互的基本方式。在C#中,可以使用Microsoft....
用户只需选择数据区域并应用相应的图表类型,Excel便会自动生成图表。这种方式不仅使数据呈现更为直观,而且有助于用户快速理解数据背后的趋势和规律。 ##### 2.4 分析与筛选数据 当数据量庞大时,直接查看数据列表...
总的来说,C# Office编程涵盖了广泛的领域,从基本的文件操作到复杂的文档处理和界面集成。了解并熟练掌握这些技能对于开发桌面应用程序,特别是在企业环境中处理数据报告和文档管理,至关重要。开发者需要熟悉各种...
用于破译office文档密码, office密码 word密码 exls密码 ppt密码,均可破译,密码越复杂,破解时间越长,
可用于数据分析,数据为EXLS格式,可转换为shp格式、kml格式。 包含A级景区,2A级景区,3A级景区,4A级景区,5A级景区。 注意:18玩个旅游景点有很多同一地点重复的,需要删除。 黑龙江省、辽宁省、吉林省、河北省...
这个过程通常涉及到前端技术,如JavaScript或jQuery,用于动态地将表格数据导出并提供下载为Excel文件的选项。描述提到的是一个示例代码,它是一个网页上的HTML表格,用户可以通过参考这个示例将表格数据保存为Excel...
6. **参考人**:提供一到两个可以为你的能力和工作表现背书的人的联系信息,但确保事先征得他们的同意。 在Excel中,可以通过合并单元格、调整列宽、应用不同的字体和颜色来美化履历表,使其更具吸引力。同时,利用...
- **读取数据**: 通常,我们会遍历所有行和单元格,读取数据并存储到合适的数据结构中,如List或Map。 - **写入数据**: 可以先构建好数据结构,然后根据需要填充到Excel的工作表中。 - **高级功能**: 包括处理...
读取文件夹及文件所有安全权限 ,可把所以文件夹内的权限导入EXLS 或TXT文件中
东芝 TC358764 timing exls