利用类的反射导入excel示例
直接上代码
1、页面展示
<div class="panel-heading font-bold text-center">
<i class="fa fa-edit"></i><strong>用户导入功能</strong>
</div>
<div class="panel-body">
<form action="#" class="form-horizontal"
method="post">
<div class="form-group" style="display:none;">
<label class="col-sm-2 control-label">
会议Id
<span class="text-danger">*</span>
</label>
<div class="col-sm-8">
<input type="text" class="form-control w-300 iblock" id="conId" name="conId" value="<%=conId %>" datatype="*" nullmsg="请填写会议Id">
</div>
</div>
<div class="form-group" style="display:none;">
<label class="col-sm-2 control-label">
会议简称
<span class="text-danger">*</span>
</label>
<div class="col-sm-8">
<input type="text" class="form-control w-300 iblock" id="fromWhere" name="fromWhere" value="<%=fromWhere %>" datatype="*" nullmsg="请填写会议简称">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">
注册类型
<span class="text-danger">*</span>
</label>
<div class="col-sm-8">
<select id="seanceId" class="form-control">
<option value="-1">请选择注册类型</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">
团队名称(用于导入团队)
<span class="text-danger"></span>
</label>
<div class="col-sm-8">
<input type="text" class="form-control w-300 iblock" id="teamName" name="teamName" datatype="*" nullmsg="请填写会议简称">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">
上传Excel文件
<span class="text-danger">*</span>
</label>
<div class="col-sm-8">
<input type="file" class="form-control w-300 iblock" id="importFile" style="display:none"/>
<button class="btn btn-lg btn-primary" id="selectFile" type="button">选择文件</button>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">
<span class="text-danger"></span>
</label>
<div id="daoru" class="col-sm-8 text-center">
<button class="btn btn-lg btn-primary" type="button" id="importBtn">导入</button>
</div>
</div>
</form> </div>
2、js数据提交
$("#importBtn").click(function(){
if($("#conId").val() == ""){
alert("请填写会议Id");
return;
}
if($("#fromWhere").val() == ""){
alert("请填写会议的简称");
return;
}
if($("#importFile").val() == ''){
alert("请选择上传的文件")
return;
}
if($("#seanceId").val() == -){
alert("请选择注册类型");
return;
}else{$("#daoru").html("导入中...");}
setTimeout(function(){
var formData = new FormData();
var teamName = encodeURIComponent($("#teamName").val());
var conId = $("#conId").val();
formData.append("importFile", $("#importFile")[].files[]);
formData.append("fromWhere", $("#fromWhere").val());
formData.append("teamName",teamName);
formData.append("conId",conId);
formData.append("seanceId",$("#seanceId").val());
$.ajax({
url: "/import.do?importUser",
type: 'POST',
data: formData,
dataType:"json",
// 告诉jQuery不要去处理发送的数据
processData: false,
// 告诉jQuery不要去设置Content-Type请求头
contentType: false,
cache:false,
ifModified:true,
async:false,
beforeSend: function () {
console.log("正在进行,请稍候");
},
success: function (json) {
if (json.state == ) {
alert("导入完成");
window.location.reload();
//$("#selectFile").html("选择文件");
} else {
alert(json.msg);
return;
}
},
error: function (json) {
console.log("error");
}
});
},)
})
3、后台数据处理
@RequestMapping(params = "importUser",method = RequestMethod.POST)
public void importUser(Integer conId,Integer seanceId,HttpServletRequest request,HttpServletResponse response){
try {
MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
MultipartFile mFile = mRequest.getFile("importFile");
String fromWhere = request.getParameter("fromWhere");
String teamName = request.getParameter("teamName");
teamName = URLDecoder.decode(teamName,"UTF-8");
UserInfo teamUser = null;
if(teamName.length() > ){//要创建团队
System.out.println(teamName);
teamUser = userinfoService.getTeamUser(fromWhere,teamName);
if(teamUser == null){
teamUser = new UserInfo();
teamUser.setTrueName(teamName);
teamUser.setDanwei(teamName);
teamUser.setHospitalName(teamName);
teamUser.setIsTeam();
teamUser.setIsTeamLeader();
teamUser.setFromWhere(fromWhere);
teamUser.setConferencesId(conId);
userinfoService.saveOrUpdate(teamUser);
teamUser.setTeamId(teamUser.getUserInfoId());
userinfoService.saveOrUpdate(teamUser);
}
}
InputStream is = mFile.getInputStream();
if(is!=null)
{
Workbook rwb = WorkbookFactory.create(is);
int rowCount = ;
Sheet st = rwb.getSheetAt();
Iterator<?> it= st.rowIterator();
String [] tableHead = null;
for(; it !=null && it.hasNext();){
Row row = (Row)it.next();
if(row==null)
{
it = null;
continue;
}
if(row.getCell()==null || row.getCell().getStringCellValue() == null ||row.getCell().getStringCellValue().length() == )
{
it = null;
continue;
}
if(rowCount == ){
int columnNum = row.getPhysicalNumberOfCells();
tableHead = new String[columnNum];
for(int i = ; i< tableHead.length;i++){
Cell cell = row.getCell(i);
String headStr = cell.getStringCellValue();
tableHead[i] = headStr;
}
}else{
UserInfo userInfo = new UserInfo();
userInfo.setFromWhere(fromWhere);
for(int j = ;j < tableHead.length;j++){
Cell cell = row.getCell(j);
String value = "";
if(cell == null || cell.equals("") || cell.getCellType() ==HSSFCell.CELL_TYPE_BLANK){ }else{
value = getCellValue(cell);
}
if (value!="") {
String tablePropertyName = tableHead[j].substring(,tableHead[j].length());
tablePropertyName = tablePropertyName.substring(, ).toLowerCase()+tablePropertyName.substring(,tablePropertyName.length());
String type = userInfo.getClass().getDeclaredField(tablePropertyName).getGenericType().toString();
if(type.equals("class java.lang.String")){
Method method = userInfo.getClass().getMethod(tableHead[j],new Class[] { String.class });
method.invoke(userInfo,new Object[]{new String(value)});
}
if(type.equals("class java.lang.Integer")){
value = value==""?"":value;
Method method = userInfo.getClass().getMethod(tableHead[j],new Class[] { Integer.class });
method.invoke(userInfo,new Object[]{new Integer(value)});
}
}
}
/*if(teamName.length() == 0){//个人导入
UserInfo saveUserInfo = userinfoService.getUserInfoByNameAndMobile(fromWhere,userInfo.getTrueName(),userInfo.getMobilePhone());
if(saveUserInfo == null){
saveUserInfo = userinfoService.getUserINfoByNameAndEmail(fromWhere,userInfo.getTrueName(),userInfo.getEmail());
if(saveUserInfo == null){
Hospital hospital = mainService.getProvinceByName(userInfo.getProvince());
if(hospital != null){
userInfo.setProvince(String.valueOf(hospital.getProvinceId()));
userInfo.setCity(String.valueOf(hospital.getCityId()));
}
userInfo.setConferencesId(conId);
userinfoService.saveOrUpdate(userInfo);
}
}
}else if(teamName.length() > 0){//团队导入
UserInfo saveUserInfo = userinfoService.getUserInfoByName(fromWhere,userInfo.getTrueName());
Hospital province = mainService.getProvinceByName(userInfo.getProvinceName());
if(province != null){
userInfo.setProvince(String.valueOf(province.getHospitalId()));
}
Hospital city = mainService.getCityByName(userInfo.getCityName());
if(city != null){
userInfo.setCity(String.valueOf(city.getHospitalId()));
}
if(saveUserInfo != null && saveUserInfo.getIsVip() != null && saveUserInfo.getIsVip() == 1){
userInfo.setIsVip(-1);
}
userInfo.setTeamId(teamUser.getUserInfoId());
userInfo.setIsTeam(1);
userInfo.setIsTeamMember(1);
userInfo.setConferencesId(conId);
userinfoService.saveOrUpdate(userInfo);
}*/
if(userInfo != null){
if(userInfo.getProvinceName() != null && userInfo.getProvinceName().length() >){
String provinceName = userInfo.getProvinceName().replace("自治区", "").replace("省", "").replace("市", "");
Hospital province = mainService.getProvinceByLikeName(provinceName);
if(province != null){
userInfo.setProvince(String.valueOf(province.getHospitalId()));
}
}
if(userInfo.getCityName() != null && userInfo.getCityName().length() >){
String cityName = userInfo.getCityName().replace("市", "");
Hospital city = mainService.getCityByLikeName(cityName);
if(city != null){
userInfo.setCity(String.valueOf(city.getHospitalId()));
}
}
} if(teamName.length() > ){//团队导入
UserInfo saveUserInfo = userinfoService.getUserInfoByName(fromWhere,userInfo.getTrueName()); if(saveUserInfo != null && saveUserInfo.getIsVip() != null && saveUserInfo.getIsVip() == ){
userInfo.setIsVip(-);
}
userInfo.setTeamId(teamUser.getUserInfoId());
userInfo.setIsTeam();
userInfo.setIsTeamMember(); }
userInfo.setConferencesId(conId);
userinfoService.saveOrUpdate(userInfo);
/*注册类型*/
if(seanceId != null && seanceId + !=){
ChcRegUser chcRegUser = webService.getChcRegUser(userInfo.getUserInfoId());
if(chcRegUser == null){
chcRegUser = new ChcRegUser();
chcRegUser.setCreateTime(new Date());
}
chcRegUser.setPaymentMethod();
chcRegUser.setConferencesId(Integer.valueOf(conId));
Seance seance = webService.getSeanceById(seanceId);
chcRegUser.setPay(seance.getPrice().intValue()); //应缴费
chcRegUser.setHasPay(); //已缴费
chcRegUser.setQianPay(seance.getPrice().intValue()); //欠费
chcRegUser.setSeanceId(seanceId);
chcRegUser.setSeance(seance.getSeanceContent());
chcRegUser.setEnSeance(seance.getEnSeanceContent()==null?"":seance.getEnSeanceContent());
chcRegUser.setUserId(userInfo.getUserInfoId());
chcRegUser.setStateType();
chcRegUser.setPayType();
webService.saveObject(chcRegUser);
userInfo.setJobNumber(chcRegUser.getChcRegUserId());
userInfo.setPayState();
webService.saveObject(userInfo);
}
}
rowCount++;
System.out.println(rowCount);
}
}
writeJson(response, new JSONObject().accumulate("state", ).toString());
} catch (Exception e) {
e.printStackTrace();
}
}
利用类的反射导入excel示例的更多相关文章
- php导入excel
使用phpexcelreader这个类文件来导入excel具体步骤: 先下载文件,然后引入phpexcelreader:下载地址:http://www.waaqi.com/wp-content/upl ...
- 在java poi导入Excel通用工具类示例详解
转: 在java poi导入Excel通用工具类示例详解 更新时间:2017年09月10日 14:21:36 作者:daochuwenziyao 我要评论 这篇文章主要给大家介绍了关于在j ...
- php利用PHPExcel类导出导入Excel用法
PHPExcel类是php一个excel表格处理插件了,下面我来给大家介绍利用PHPExcel类来导入与导出excel表格的应用方法,有需要了解的朋友不防参考参考(PHPExcel自己百度下载这里不介 ...
- 基于 Aspose.Cells与XML导入excel 数据----操作类封装
前言 导入excel数据, 在每个项目中基本上都会遇到,第三方插件或者基于微软office,用的最多的就是npoi,aspose.cells和c#基于office这三种方式,其中各有各的优缺点,在这也 ...
- Java基于注解和反射导入导出Excel
代码地址如下:http://www.demodashi.com/demo/11995.html 1. 构建项目 使用Spring Boot快速构建一个Web工程,并导入与操作Excel相关的POI包以 ...
- 利用Aspose.Cell控件导入Excel非强类型的数据
导入Excel的操作是非常常见的操作,可以使用Aspose.Cell.APOI.MyXls.OLEDB.Excel VBA等操作Excel文件,从而实现数据的导入,在导入数据的时候,如果是强类型的数据 ...
- 利用kettle组件导入excel文件到数据库
利用kettle组件导入excel文件到数据库 1. 实现目标 把excel文件内容导入到目标表中:然后用java调用kettle的转换.excel文件的内容仅仅有两列,示比例如以下: wat ...
- Spring Boot下的一种导入Excel文件的代码框架
1.前言 Spring Boot下如果只是导入一个简单的Excel文件,是容易的.网上类似的文章不少,有的针对具体的实体类,代码可重用性不高:有的利用反射机制或自定义注解,开发了Excel导入工具 ...
- Java注解(Annotation)用法:利用注解和反射机制指定列名导出数据库数据
闲来没事,想了一个应用的例子:用java如何把数据库的数据根据我们指定的某几列,如第2列,第4列,第6列导出来到Excel里? 写代码也是为了应用的,写好的代码更重要的是在于思考.我自己思考了这个示例 ...
随机推荐
- 阶段01Java基础day25网络编程
26.01_网络编程(网络编程概述) A:计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源 ...
- Java 平时作业六
编写一个 Java 应用程序,使用 Java 的输入输出流技术将 Input.txt 的内容(Input.txt 为文本 文件)逐行读出, 每读出一行就顺序为其添加行号(从 1 开始,逐行递增),并写 ...
- hive lock命令的使用
1.hive锁表命令 hive> lock table t1 exclusive;锁表后不能对表进行操作 2.hive表解锁: hive> unlock table t1; 3.查看被锁的 ...
- Debian 系linux切换登录管理器(display manager)
在控制台中sudo dpkg-reconfigure <你的dm包名>即可dm选择列表,选择自己需要的dm 例如ubutu18默认使用gdm3,则输入命令: sudo dpkg-recon ...
- 2018-2019-2 学号20175223 实验二《Java面向对象程序设计》实验报告
目录 北京电子科技学院(BESTI)实验报告 实验名称:实验二 面向对象程序设计 实验内容.步骤与体会: 一.实验二 面向对象程序设计-1 二.实验二 面向对象程序设计-2 三.实验二 面向对象程序设 ...
- PHP协程入门详解
概念 咱们知道多进程和多线程是实现并发的有效方式.但多进程的上下文切换资源开销太大:多线程开销相比要小很多,也是现在主流的做法,但其的控制权在内核,从而使用户(程序员)失去了对代码的控制,而且线程的上 ...
- 第一次 刷 WiFi 模块esp8266 感谢创客阿正
在正哥指导下 第一次 刷 WiFi 模块 少走了 不少弯路 套件里的 两块 机智云 ==== 我的电脑 需要单独供电 先 对应 接好 ic0要记得接gnd 等待上电时要断电重启 等 用助手 返回 ...
- 1--Test NG--常见测试和注解
第一:注解 (1)@test (2)@BeforeMethod,@AfterMethod (3)@BeforeClass,@AfterClass (4)@BeforeSuite,@AfterSuite ...
- 神州数码DHCP及DHCP中继配置
实验要求:掌握DHCP及DHCP中继配置方法 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface g0/5 进入端口 ip a ...
- WEB学习笔记12-高可读性的HTML之如何正确设计表单
网站中的用户登录.注册.用户调查等都是通过页面中的表单提交到网站服务器的.假设要实现让用户设置个人信息的一个表单. 该表格为两栏布局,第一栏中的文本左对齐,第二栏的表单控件右对齐,构成了最容易实现的表 ...