1.最终的效果图
2.开发步骤
2.1 环境配置
环境 | 版本 |
---|
Eclipse | 2018-12 (4.10.0) |
poi | 3.14 |
poi-ooxml | 3.14 |
2.2 POM 文件的引入
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
2.3 web开发
<script type="text/javascript">
function uploadFile() {
if($("#userUploadFile").val() == ""){
alert("请选择要上传的文件");
}else{
$("#uploadForm").form("submit", {
success : function(data) {
var obj = eval('(' + data + ')');
if (obj.error == 0) {
var errorStr=obj.errorDesc;
if(errorStr.indexOf("**") != -1){
for (var i=0;i<100;i++)
{
errorStr= errorStr.replace('**','\n');
}
$("#err_e").css("display","block");
$("#err_info").css("display","block");
$("#err_info").text(String(errorStr));
}else if(errorStr !=""){
$("#err_e").css("display","block");
$("#err_info").css("display","block");
$("#err_info").text(String(errorStr));
}else{
$("#err_e").css("display","none");
$("#err_info").css("display","none");
}
var successStr=obj.successDesc;
if(successStr.indexOf("**") != -1){
for (var i=0;i<100;i++)
{
successStr= successStr.replace('**','\n');
}
$("#err_s").css("display","block");
$("#success_info").css("display","block");
$("#success_info").text(String(successStr));
}else{
$("#err_s").css("display","none");
$("#success_info").css("display","none");
}
return ;
}
},
error : function(e) {
$.messager.alert("系统提示", "操作失败。");
}
});
}
}
</script>
<body>
<div>
<form id="uploadForm"
action="h8h/gpm/partnerEmployee.action?action=excelBatchImport"
method="post" enctype="multipart/form-data">
<table cellpadding="0" cellspacing="0" border="0"
style="width: 600px; margin: 20px auto; text-algin: left;">
<tr>
<td colspan="4"><input id="dyId" type="hidden" /></td>
</tr>
<tr>
<td colspan="3"><a
href="/gpm/downloadExcel/employeeTemplate.xls" id="downloadModel"
name="downloadModel" style="margin-left: 7px;"><u>点击下载人员模板</u></a>
</tr>
<tr>
<td colspan="4"><br /></td>
</tr>
<tr>
<td colspan="3"><input type="file" id="userUploadFile"
name="model.userUploadFile" style="width: 200px;"></td>
</tr>
<tr>
<td colspan="4"><br /></td>
</tr>
<tr>
<td colspan="4" style="text-align: center;">
<hr style="width: 720px; border-width: 0.3px; margin-left: -10px;">
<a href="javascript:void(0)" class="easyui-linkbutton"
iconCls="silk-execl" onclick="uploadFile()">上传</a>
</td>
</tr>
</table>
</form>
</div>
<div>
<table style="width: 300px;">
<tr>
<td>
<span id="err_e"
style="width: 360px; display: none; color: red;text-align:center;" >录入有误提示:</span>
</td>
<td>
<span id="err_s"
style="width: 360px; display: none; color: blue;text-align:center;">录入成功提示:</span>
</td>
</tr>
<tr>
<td>
<textarea id="err_info" rows="12" cols="" style="width: 360px; display: none; color: red;text-align:center;">
</textarea>
</td>
<td>
<textarea id="success_info" rows="12" cols="" style="width: 360px; display: none; color: blue;text-align:center;">
</textarea>
</td>
</tr>
</table>
</div>
</body>
2.4 服务端开发
private static final long serialVersionUID = -3456781L;
private PartnerEmployeeForm model = new PartnerEmployeeForm();
@Override
public BaseObject getObject() {
return model;
}
public void excelBatchImport() throws Exception {
List<PartnerEmployeeForm> listEmployee = new ArrayList<PartnerEmployeeForm>();
Map<String, String> resMap = new HashMap<String, String>(2);
resMap.put("error", "0");
StringBuffer errorBuffer = new StringBuffer();
StringBuffer successBuffer = new StringBuffer();
boolean IsTemplate=false;
if (model.getUserUploadFile()==null) {
errorBuffer.append("网络传输参数错误**");
}else {
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(model.getUserUploadFile()));
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet hssfSheet = wb.getSheetAt(0);
if (hssfSheet != null) {
HSSFRow hssfRow0 = hssfSheet.getRow(0);
String str0=formatCell(hssfRow0.getCell((short) 0));
String str1=formatCell(hssfRow0.getCell((short) 1));
String str2=formatCell(hssfRow0.getCell((short) 2));
String str3=formatCell(hssfRow0.getCell((short) 3));
String str4=formatCell(hssfRow0.getCell((short) 4));
String str5=formatCell(hssfRow0.getCell((short) 5));
if (str0.trim().equals("所属公司") &&
str1.trim().equals("所属部门") &&
str2.trim().equals("员工姓名") &&
str3.trim().equals("手机号码") &&
str4.trim().equals("初始密码") &&
str5.trim().equals("收款编码")) {
for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
HSSFRow hssfRow = hssfSheet.getRow(rowNum);
if (hssfRow == null) {
continue;
}else if (hssfRow.getCell((short) 0)==null &&
hssfRow.getCell((short) 1)==null &&
hssfRow.getCell((short) 2)==null &&
hssfRow.getCell((short) 3)==null &&
hssfRow.getCell((short) 4)==null &&
hssfRow.getCell((short) 5)==null ) {
continue;
}
PartnerEmployeeForm mmodel = new PartnerEmployeeForm();
mmodel.setCompanyName(formatCell(hssfRow.getCell((short) 0)));
mmodel.setDepartmentName(formatCell(hssfRow.getCell((short) 1)));
mmodel.setName(formatCell(hssfRow.getCell((short) 2)));
mmodel.setAccountId(formatCell(hssfRow.getCell((short) 3)));
mmodel.setPassword(formatCell(hssfRow.getCell((short) 4)));
mmodel.setReceiptCodeNo(formatCell(hssfRow.getCell((short) 5)));
if (mmodel.getCompanyName()!=null) {
long companyId=companyService.getpartnerCompanyId(mmodel.getCompanyName());
if (companyId>0) {
mmodel.setCompanyId(companyId);
}
}
if (mmodel.getDepartmentName()!=null) {
long departmentId=departmetService.getIdByDepartmentName(mmodel.getDepartmentName());
if (departmentId>0) {
mmodel.setDepartmentId(departmentId);
}
}
listEmployee.add(mmodel);
}
int i=1;
for (PartnerEmployeeForm from : listEmployee) {
i++;
if (from.getCompanyId() == null || from.getAccountId() == null || from.getName() == null
|| from.getPassword() == null) {
errorBuffer.append("【第 "+i+" 行】"+"参数错误**");
} else {
int count = service.getEmployeeAccountIdTotal(from);
if (count > 0) {
errorBuffer.append("【第 "+i+" 行】"+from.getAccountId()+"账号已存在**");
} else {
int n_count = service.getEmployeeNameTotal(from);
if (n_count > 0) {
errorBuffer.append("【第 "+i+" 行】"+from.getName()+"该姓名已存在**");
} else {
from.setPassword(MD5Util.MD5(from.getPassword()));
from.setCreator(model.getUserInfo().getUserName());
long id = service.saveEmployee(from);
if (id > 0) {
successBuffer.append("【第 "+i+" 行】"+from.getAccountId()+"账号新增成功**");
} else {
errorBuffer.append("【第 "+i+" 行】"+from.getAccountId()+"账号新增失败**");
}
}
}
}
}
}else {
IsTemplate=true;
errorBuffer.append("模板有误,请下载指定人员模板。");
}
}
}
if (listEmployee.size()==0 && IsTemplate==false) {
errorBuffer.append("数据录入不能为空,导入模板失败。");
}
resMap.put("errorDesc", errorBuffer.toString());
resMap.put("successDesc", successBuffer.toString());
ResponseUtil.writeJson(response, resMap);
}
@SuppressWarnings("deprecation")
public static String formatCell(HSSFCell hssfCell){
String cellValue = "";
if (hssfCell == null) {
return null;
}
DecimalFormat decimalFormat = new DecimalFormat("#");
switch (hssfCell.getCellType()) {
case HSSFCell.CELL_TYPE_NUMERIC:
cellValue=decimalFormat.format(hssfCell.getNumericCellValue()).toString().trim();
break;
case HSSFCell.CELL_TYPE_STRING:
cellValue = hssfCell.getStringCellValue().toString().trim();
break;
}
return cellValue;
}
public class PartnerEmployeeForm extends BaseObject{
private static final long serialVersionUID = -123456L;
private Long id;
private Long companyId;
private String companyName;
private Long departmentId;
private String departmentName;
private String name;
private String mobile;
private String accountId;
private String password;
private Integer status;
private String creator;
private File userUploadFile;
public File getUserUploadFile() {
return userUploadFile;
}
public void setUserUploadFile(File userUploadFile) {
this.userUploadFile = userUploadFile;
}
....get/set....
}