导入execl到数据库mysql

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: GwykhrenyuankuList     .fileInputContainer{ height:29px; background:url(/cjxb/common/images/btnDrry.

GwykhrenyuankuList

 

 

<body jwcid="$content$">
<span jwcid="@components/AppBorder" subtitle="需要使用务表"
disableCaching="true"> <!--当前位置--> <!--页面主体-->
<style type="text/css">
.fileInputContainer{
height:29px;
background:url(/cjxb/common/images/btnDrry.png);
position:relative;
width: 85px;
float: right;
}

.fileInput{
height:29px;
width: 85px;
overflow: hidden;
position:absolute;
right:0;
top:0;
opacity: 0;
filter:alpha(opacity=0);
cursor:pointer;
}
</style>
<div jwcid="listData@Any" name="data" id="listData">
<form jwcid="queryForm@Form">
<!--功能区-->
<h2 class="pagetitle">
<span>测评管理</span>
</h2>
<div class="news-list tol">
<h2 class="update">搜索条件
<a jwcid="@DirectLink" listener="ognl:listeners.backList" class="btnUpDate"><img jwcid="@Any"
src="/cjxb/common/images/btnFh.gif" /></a>
</h2>
<!--搜索-->
<div class="news-list tol">
<div class="newForm">
<p class="clearfix">
<span class="spanTitle">姓名:</span>
<input type="text" jwcid='qf_khrenyuanname@TextField' displayName="姓名" class="w150p mr10p" style="width:120px"
value='ognl:queryFilter.fields["qf_khrenyuanname"].value' />
<span class="spanTitle">:</span>
<input jwcid='qf_sijuid_code@PropertySelection' readOnly="readOnly" model="ognl:@com.app.util.GwykhUtils@getGzdwList()" style="width:120px"
displayName="" class="w150p mr10p" value='ognl:queryFilter.fields["qf_sijuid_code"].value' />
<span class="spanTitle">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span>
<input jwcid='qf_offices@TextField' displayName="" class="w150p mr10p" value='ognl:queryFilter.fields["qf_offices"].value' style="width:114px"/>
</p>
<p class="clearfix">
<span class="spanTitle">:</span>
<input jwcid='qf_khrenyuanzhiwu@TextField' displayName="名称"
class="w150p mr10p" style="width:120px" value='ognl:queryFilter.fields["qf_khrenyuanzhiwu"].value'/>
<span class="spanTitle">:</span>
<input jwcid='qf_levelNum@dev:PropertySelection' keyType='level' emptyMsg="请选择" displayName=""
style="width: 120px;margin-right: 10px;" value='ognl:queryFilter.fields["qf_levelNum"].value'/>
<span class="spanTitle">状态:</span>
<input jwcid='qf_status@dev:PropertySelection' keyType='rystatus' emptyMsg="请选择" displayName="状态"
style="width: 120px;margin-right: 10px;" value='ognl:queryFilter.fields["qf_status"].value'/>
</p>
<p class="clearfix">
<span class="spanTitle">岗位标志:</span>
<input jwcid='qf_postFlag@dev:PropertySelection' keyType='post' emptyMsg="请选择" displayName="现岗位标志"
style="width: 120px;margin-right: 10px;" value='ognl:queryFilter.fields["qf_postFlag"].value'/>
</p>

</div></div>
<input jwcid="qf_khchengcibiaoid@TextField" value='ognl:queryFilter.fields["qf_khchengcibiaoid"].value' style="display: none;"/>
<h4 class="sign-h4">
<a href="#" jwcid="@LinkSubmit"><img jwcid="@Any"
src="/cjxb/common/images/btnSearch01.gif" /></a>
<a href="#" parameters="ognl:new java.lang.String[]{'add',queryFilter.fields['qf_khchengcibiaoid'].value}"
jwcid="@cofortune:ExternalLink" page="GwykhrenyuankuEdit"><img jwcid="@Any"
src="/cjxb/common/images/zj.gif" /></a>
<a href="javascript:void(0)" onclick="$('#id_sys_del_link').click()" ><img jwcid="@Any"
src="/cjxb/common/images/sc.gif" /></a>
<!-- <a href="#" onclick="javascript:$('#xlsFile').get(0).click();">导入人员</a> -->
</h4>
<!--列表-->
<h2 class="h2-table-title">
<div class="fileInputContainer">
<input type="file" jwcid="xlsFile@Upload" file="ognl:xlsFile" onchange="xlsUpload();" class="fileInput"/>
</div>
<input jwcid="addPeople@Submit" value="" type="submit" listener="ognl:listeners.addPeople" style="display: none;"/>
务列表
</h2>
<table width="100%" border="0" cellspacing="0" cellpadding="0"
class="list-table">
<colgroup>
<col width="4%" />
<col width="12%"/>
<col width="12%"/>
<col width="12%"/>
<col width="12%"/>
<col width="10%"/>
<col width="12%"/>
<col width="14%"/>
<col width="12%" />
</colgroup>
<tr>
<th><input type="checkbox" jwcid="allbox@cofortune:CheckAllBox" /></th>
<th>姓名</th>
<th></th>
<th></th>
<th>现</th>
<th></th>
<th>岗位标志</th>
<th>状态</th>
<th>操作</th>
</tr>
<tfoot>
<tr>
<td colspan="9"><span jwcid="nav">翻页组件</span></td>
</tr>
</tfoot>
<tbody>
<tr class="even" jwcid="foreach">
<td align="center" class="chk"><input type="checkbox" jwcid="rowSelect" groupby="allbox" /></td>
<td align="center"><span jwcid="@Insert"
value="ognl:item.khrenyuanname">名称</span>&nbsp;</td>
<td align="center"><span jwcid="@Insert"
value="ognl:item.sijuid.gzdwValue"></span>&nbsp;</td>
<td align="center"><span jwcid="@Insert"
value="ognl:@com.app.util.GwykhUtils@officesView(item.offices)"></span>&nbsp;</td>
<td align="center"><span jwcid="@Insert"
value="ognl:item.khrenyuanzhiwu"></span>&nbsp;</td>
<td align="center"><span jwcid="@dev:Insert" dicType="level"
value="ognl:item.levelNum"></span>&nbsp;</td>
<td align="center"><span jwcid="@dev:Insert" dicType="post"
value="ognl:item.postFlag">现岗位标志</span>&nbsp;</td>
<td align="center"><span jwcid="@dev:Insert" dicType="rystatus"
value="ognl:item.status">状态</span>&nbsp;</td>
<td align="center">
<a href="#" parameters="ognl:new java.lang.String[]{'edit',item.id}"
jwcid="@cofortune:ExternalLink" page="GwykhrenyuankuEdit">[修改]</a>
<a jwcid="@DirectLink" listener="ognl:listeners.delete"
parameters="ognl:item.id" onclick="return confirm('确定删除?');">[删除]</a>
</td>
</tr>
</tbody>
</table>
</div>
<!--数据列表 end-->
<a jwcid="id_sys_del_link@Submit" listener="ognl:listeners.delete" style="display: none" onclick="return confirm('确定要删除?');" />
</form>
</div>
</span>
<script type="text/javascript">
<!--
function xlsUpload(){
var file = $('#xlsFile').val();
if(file != null && file != "" && file != undefined){
var ext = file.substr(file.lastIndexOf('.'));
if(ext == '.xls'){
$("#addPeople").get(0).click();
}else{
alert("请上传Excel文件(2003格式)");
}
}
}
-->
</script>
</body>

 

 

 

 

 

 

 

package com.app.pages.gwykh;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import jxl.Sheet;
import jxl.Workbook;

import org.apache.commons.lang.StringUtils;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.request.IUploadFile;

import com.app.iface.gwykh.GwykhchengcibiaoIface;
import com.app.iface.gwykh.GwykhdanweiIface;
import com.app.iface.gwykh.GwykhrenyuankuIface;
import com.app.model.Gwykhdanwei;
import com.app.model.Gwykhrenyuanku;
import com.app.model.GwykhGzdw;
import com.app.service.gwykh.GwykhchengcibiaoService;
import com.app.service.gwykh.GwykhdanweiService;
import com.app.service.gwykh.GwykhrenyuankuService;
import com.app.util.GwykhUtils;
import com.cofortune.base.cache.CacheManager;
import com.cofortune.base.factory.ServiceFactory;
import com.cofortune.base.model.BaseDictionary;
import com.cofortune.base.model.BaseObject;
import com.cofortune.base.pages.CieccListPage;
import com.cofortune.framework.query.IPagingAndSorting;
import com.cofortune.framework.query.PagingAndSorting;
import com.cofortune.framework.query.QueryFilter;
/**
* 人员库表列表页面
* @每日一句:旁观者的姓名永远爬不到比赛的计分板上。
* @author 自动生成与2013-10-14 13:17:05 ^_^ GOOD LUCK!!
*/
public abstract class GwykhrenyuankuList extends CieccListPage {

/**
* 初始化分页排序
* 排序注意要加id
*/
public IPagingAndSorting initPagingAndSorting() {
//默认以ID列进行排序,如需指定排序列请按照“dicCode,id”格式添加
PagingAndSorting pagingAndSorting = new PagingAndSorting("sijuid.gzdwCode,postFlag,offices,levelNum,sort",false);
pagingAndSorting.setMaxResults(20);
return pagingAndSorting;
}
/**
* 初始化查询条件
*/
public QueryFilter initQueryFilter() {
QueryFilter qf = new QueryFilter();
qf.addField("qf_khrenyuanname", "khrenyuanname", QueryFilter.OPERATION_LIKE, "");//人员名称
qf.addField("qf_sijuid_code", "sijuid.gzdwCode", QueryFilter.OPERATION_EQ, "");//名称
qf.addField("qf_offices", "offices", QueryFilter.OPERATION_EQ, "");//
qf.addField("qf_khrenyuanzhiwu", "khrenyuanzhiwu", QueryFilter.OPERATION_LIKE, "");//人员
qf.addField("qf_levelNum", "levelNum", QueryFilter.OPERATION_EQ, "");//职级
qf.addField("qf_postFlag", "postFlag", QueryFilter.OPERATION_EQ, "");//现岗位标志
qf.addField("qf_status", "status", QueryFilter.OPERATION_EQ, "");//状态
qf.addField("qf_khchengcibiaoid", "khchengcibiaoid.id", QueryFilter.OPERATION_EQ, "");//层次表ID
return qf;
}
/**
* 得到人员库表服务类
* @author 自动生成与2013-10-14 13:17:05 ^_^ GOOD LUCK!!
* @return
*/
public GwykhrenyuankuIface getGwykhrenyuankuService(){
GwykhrenyuankuIface service = ServiceFactory.getBean(GwykhrenyuankuService.class, GwykhrenyuankuIface.class);
return service;
}
/**
* 得到层次表服务类
* @author 自动生成与2013-10-14 13:17:28 ^_^ GOOD LUCK!!
* @return
*/
public GwykhchengcibiaoIface getGwykhchengcibiaoService(){
GwykhchengcibiaoIface service = ServiceFactory.getBean(GwykhchengcibiaoService.class, GwykhchengcibiaoIface.class);
return service;
}
/**
* 得到测评表服务类
* @author 自动生成与2013-10-14 13:17:15 ^_^ GOOD LUCK!!
* @return
*/
public GwykhdanweiIface getGwykhdanweiService(){
GwykhdanweiIface service = ServiceFactory.getBean(GwykhdanweiService.class, GwykhdanweiIface.class);
return service;
}
/**
* 加载人员库表数据
* @author 自动生成与2013-10-14 13:17:05 ^_^ GOOD LUCK!!
* @return
*/
public void loadData() {
GwykhrenyuankuIface service=getGwykhrenyuankuService();
List<BaseObject> find = service.findGwykhrenyuandaku(getQueryFilter(), getPagingAndSorting());
setItems(find);
}

/**
* 删除人员库表
* @param id
* @author 自动生成与2013-10-14 13:17:05 ^_^ GOOD LUCK!!
* @return
*/
public void delete(String id ){
GwykhrenyuankuIface service=getGwykhrenyuankuService();
if(StringUtils.isBlank(id)){
service.removeGwykhrenyuanku(getSelectedList().toArray(new String[0]));
}else{
service.removeGwykhrenyuanku(id);
}
this.backToListWithParms("GwykhrenyuankuList,S"+System.currentTimeMillis());//带查询分页参数返回
}

public void backList(){
this.backToListWithParms("GwykhchengcibiaoList,S"+System.currentTimeMillis());//带查询分页参数返回
}

public abstract IUploadFile getXlsFile();
public abstract void setXlsFile(IUploadFile xlsFile);

public void addPeople(){
/**接装**/
Map dwMap = new HashMap();
QueryFilter qf = new QueryFilter();
qf.addField("qf_status", "status", QueryFilter.OPERATION_LIKE, "1");
qf.addField("qf_khchengcibiaoid", "khchengcibiaoid", QueryFilter.OPERATION_LIKE, getQueryFilter().getField("qf_khchengcibiaoid").getValue().toString());
List danwei = getGwykhdanweiService().findGwykhdanwei(qf, null);
if(danwei != null && danwei.size() > 0){
for(Object obj : danwei){
dwMap.put(((Gwykhdanwei)obj).getGzdwid().getGzdwCode(), obj);
}
}
IUploadFile xlsFile = getXlsFile();
InputStream is = xlsFile.getStream();
Workbook rwb = null;
List<Gwykhrenyuanku> list = new ArrayList<Gwykhrenyuanku>();
try {
rwb = Workbook.getWorkbook(is);
Sheet rs = rwb.getSheet(0);// 获取第一张Sheet表
int rsRows = rs.getRows();// 获取Sheet表中所包含的总行数
for (int i = 1; i < rsRows; i++) {//**从第二行开始读取数据 这里默认从第2行开始读取
Gwykhrenyuanku ry = new Gwykhrenyuanku();
ry.setKhchengcibiaoid(getGwykhchengcibiaoService().editGwykhchengcibiao(getQueryFilter().getField("qf_khchengcibiaoid").getValue().toString()));
String name = rs.getCell(0, i).getContents();
if(StringUtils.isNotBlank(name)){
ry.setKhrenyuanname(name);
String sijuName = rs.getCell(1, i).getContents();//获得名称
GwykhGzdw gzdw = GwykhUtils.getGzdwByGzdwValue(sijuName);//获得信息
ry.setSijuid(gzdw);
ry.setSijuname(gzdw.getGzdwValue());

ry.setKhdanweiid((Gwykhdanwei)dwMap.get(gzdw.getGzdwCode()));//

String offices = rs.getCell(2, i).getContents();//名
// BaseDictionary dic = CacheManager.getInstance().getBaseDicByName("offices", offices);
// if(dic != null){
// offices = dic.getDicCode();
// }
ry.setOffices(offices);

String zhiwu = rs.getCell(3, i).getContents();//现
// BaseDictionary dic = CacheManager.getInstance().getBaseDicByName("zw", zhiwu);
// if(dic != null){
// zhiwu = dic.getDicCode();
// }
ry.setKhrenyuanzhiwu(zhiwu);

String level = rs.getCell(4, i).getContents();//序号
ry.setLevelNum(level);

String postFlag = rs.getCell(5, i).getContents();//现岗位标志

/** 通过现岗位标志确定状态 */
//1只2测评3无测评
// if(GwykhUtils.POST_NAME_1.contains(postFlag)){
// ry.setStatus(GwykhUtils.STATUS_FLAG_1);
// }else if(GwykhUtils.POST_NAME_2.contains(postFlag)){
// ry.setStatus(GwykhUtils.STATUS_FLAG_2);
// }else
if(GwykhUtils.POST_NAME_3.contains(postFlag)){
ry.setStatus(GwykhUtils.STATUS_FLAG_3);
}else{
ry.setStatus("");
}

BaseDictionary dic = CacheManager.getInstance().getBaseDicByName("post", postFlag);
if(dic != null){
postFlag = dic.getDicCode();
}
ry.setPostFlag(postFlag);

String sort = rs.getCell(6, i).getContents();//排序
if(sort != null && sort != ""){
ry.setSort(Integer.parseInt(sort));
}

ry.setIstongguo("0");
list.add(ry);
}
}
this.getGwykhrenyuankuService().saveOrUpdateGwykhrenyuankuByList(list, getQueryFilter().getField("qf_khchengcibiaoid").getValue().toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if(rwb != null){
rwb.close();
}
if(is != null){
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
this.backToListWithParms("GwykhrenyuankuList,S"+System.currentTimeMillis());//带查询分页参数返回
}

//接收参数,需要传递参数在此修改
@Override
public void activateExternalPage(Object[] arg0, IRequestCycle arg1) {
if(arg0!=null){//添加额外参数使用,添加好的参数一定要传入到queryFilter中,不然分页时候出现错误,如下部分
if("list".equals(arg0[0])){
getQueryFilter().getField("qf_khchengcibiaoid").setValue(arg0[1]);
}
}
super.activateExternalPage(arg0, arg1);
}

//搜索区域下拉框







}

未来星开发团队--狒狒 QQ:9715234
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
关系型数据库 MySQL Linux
Linux下mysql数据库的导入与导出以及查看端口
本文详细介绍了在Linux下如何导入和导出MySQL数据库,以及查看MySQL运行端口的方法。通过这些操作,用户可以轻松进行数据库的备份与恢复,以及确认MySQL服务的运行状态和端口。掌握这些技能,对于日常数据库管理和维护非常重要。
38 8
|
9天前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
13天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
39 3
|
13天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
42 3
|
13天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE &#39;log_%&#39;;`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
54 2
|
20天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
26天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
181 15
|
27天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
1月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
2月前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据