控制层方法:
@RequestMapping(value = "/parseEXCEL.do", method = RequestMethod.POST)
public String batchApplication(@RequestParam("file") MultipartFile file,HttpServletRequest request, HttpServletResponse response, Model model, HttpSession session) throws IOException {
request.setCharacterEncoding("utf-8");
/*
* 将上传Excel文件保存到D盘中excelFile临时文件夹中
*/
String path = "D:\\excelFile";
File tmpFile = new File(path);
if (!tmpFile.exists()) {
tmpFile.mkdir();
}
String fileUrl = tmpFile + "/" + file.getOriginalFilename();
fileUrl = fileUrl.replaceAll("\\\\", "/");
try {
byte[] bytes = file.getBytes();
/*
* 保存临时文件
*/
FileOutputStream fos = new FileOutputStream(fileUrl);
fos.write(bytes);
fos.close();
FileInputStream fis = new FileInputStream(fileUrl);
/*
* 调用方法解析Excel文档返回一个List<Encryption>对象集合
*/
List<Encryption> Encryptions = ExcelUtil.parseEXCEL(fis);
/*
* 插入操作前获取每条信息对应的ID值
*/
for(Encryption encr:Encryptions){
encr.setEncryptionid(UUIDPrimaryKeyUtil.getPrimaryKey());
Boolean isEncs = encryptionService.addBatchExcel(encr);
}
fis.close();
/*将服务器临时文件删除*/
if (fu.exists()) {
fu.delete();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
解析以及数据处理类:
package com.company.item.util.ExcelInfo;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.company.item.model.encryptionManage.Encryption;
import com.company.item.util.info.LoginInfoUser;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class ExcelUtil {
/*
* private 私有 本类 static 静态方法 可以调用 final 程序运行不可更改
*/
private static final Map<String,String> RJBBMAP =new HashMap<String,String>();;
private static final Map<String,String> QXMAP =new HashMap<String,String>();
private static final Map<String,String> RJLXMAP=new HashMap<String,String>();
/*构造初始化*/
public ExcelUtil(){
/*
* 初始化软件版本及对应的软件版本ID信息 key:rjbb value:rjbbID
*/
RJBBMAP.put("沪友远程认证系统v1.0", "08e9a5b8-f896-484d-9969-044559303ba9");
RJBBMAP.put("票易捷辅助v4.0", "1b6e6839-4293-4f9c-a448-268a09147fda");
RJBBMAP.put("票易捷辅助v1.0", "43ef1f8e-bf9b-4692-b9f3-a06ee7775cbd");
RJBBMAP.put("办税助手网商贷v1.0", "63ed43b0-1052-45b0-9d70-050ecb297e68");
RJBBMAP.put("文本接口v3.0", "75d54e4a-fff3-4fd6-a0af-704b55171556");
RJBBMAP.put("票易捷辅助v2.0", "78f35e62-d306-440c-b55f-894fbd4d594e");
RJBBMAP.put("办税助手v1.0", "7de6e05a-c997-4706-adc7-ffd82578cb9a");
RJBBMAP.put("沪友远程认证系统v2.0", "8e8b046f-5dca-414d-a278-3bcb574f9f4e");
RJBBMAP.put("文本接口v1.0", "8e8b046f-5dca-414d-a278-3bcb574f9f4e");
RJBBMAP.put("发票管理v2.0", "926892ee-bd3f-4b09-94aa-4fcac170fa61");
RJBBMAP.put("文本接口v2.0", "a4ebb7a4-b5ff-46cc-b4d4-0849e4ea75e8");
RJBBMAP.put("办税助手v2.0", "b78a0d9c-4be0-41d6-8b96-658114f860d5");
RJBBMAP.put("票易捷辅助v5.0", "c8bd5bf0-bea5-4ce1-a4e0-4b6fa02505e8");
RJBBMAP.put("票易捷辅助v3.0", "d85d4053-ca39-40a4-8b75-cb68efc838ca");
RJBBMAP.put("机动车自动开票1.0.0.1", "da1d2f80-e6fa-4142-9d27-f802d703e4a0");
/*数据库数据
* 08e9a5b8-f896-484d-9969-044559303ba9 沪友远程认证系统v1.0
1b6e6839-4293-4f9c-a448-268a09147fda 票易捷辅助v4.0
43ef1f8e-bf9b-4692-b9f3-a06ee7775cbd 票易捷辅助v1.0
63ed43b0-1052-45b0-9d70-050ecb297e68 办税助手网商贷v1.0
75d54e4a-fff3-4fd6-a0af-704b55171556 文本接口v3.0
78f35e62-d306-440c-b55f-894fbd4d594e 票易捷辅助v2.0
7de6e05a-c997-4706-adc7-ffd82578cb9a 办税助手v1.0
897bb9f0-872b-45ef-9224-1f71bd4526a9 沪友远程认证系统v2.0
8e8b046f-5dca-414d-a278-3bcb574f9f4e 文本接口v1.0
926892ee-bd3f-4b09-94aa-4fcac170fa61 发票管理v2.0
a4ebb7a4-b5ff-46cc-b4d4-0849e4ea75e8 文本接口v2.0
b78a0d9c-4be0-41d6-8b96-658114f860d5 办税助手v2.0
c8bd5bf0-bea5-4ce1-a4e0-4b6fa02505e8 票易捷辅助v5.0
d85d4053-ca39-40a4-8b75-cb68efc838ca 票易捷辅助v3.0
da1d2f80-e6fa-4142-9d27-f802d703e4a0 机动车自动开票1.0.0.1
*/
/*数据库数据
* 初始化权限ID及对应的权限值 key: qx值 value:qxID
*/
QXMAP.put("1","8a1e78a5-405a-4919-8c89-68c6f6e564d5" );
QXMAP.put("2", "7b5a7079-1eff-47bc-bff4-75d0aef78269");
/*
7b5a7079-1eff-47bc-bff4-75d0aef78269 2 无扫描枪
8a1e78a5-405a-4919-8c89-68c6f6e564d5 1 有扫描枪
*/
/*数据库数据
* 初始化软件类型及对应的软件类型ID信息 key:rjlx value:rjlxId
*/
RJLXMAP.put("发票管理", "5dae44f5-dc71-4a98-b0b2-1666b4a178f9");
RJLXMAP.put("办税助手网商贷", "6bbf5b8c-2a39-4b9d-9cfb-492611f4621a");
RJLXMAP.put("机动车自动开票", "798a8220-7fb6-40b7-b355-61a42cf5613b");
RJLXMAP.put("沪友远程认证系统", "7f0c5652-ee12-4d89-9169-d2652edd58c5");
RJLXMAP.put("票易捷辅助", "81e200d1-ec7c-4e7b-a7bb-04ae0d6849c2");
RJLXMAP.put("文本接口", "bb6ef58c-3cff-4b20-a45e-c9af85e72456");
RJLXMAP.put("车购税申报系统", "cadc1745-8a5e-4807-acb0-93d35b7abe72");
/* 数据库数据
5dae44f5-dc71-4a98-b0b2-1666b4a178f9 发票管理
6bbf5b8c-2a39-4b9d-9cfb-492611f4621a 办税助手网商贷
798a8220-7fb6-40b7-b355-61a42cf5613b 机动车自动开票
7f0c5652-ee12-4d89-9169-d2652edd58c5 沪友远程认证系统
81e200d1-ec7c-4e7b-a7bb-04ae0d6849c2 票易捷辅助
bb6ef58c-3cff-4b20-a45e-c9af85e72456 文本接口
cadc1745-8a5e-4807-acb0-93d35b7abe72 车购税申报系统
*/
}
/* 静态域初始化*/
static{
/*
* 初始化软件版本及对应的软件版本ID信息 key:rjbb value:rjbbID
*/
RJBBMAP.put("沪友远程认证系统v1.0", "08e9a5b8-f896-484d-9969-044559303ba9");
RJBBMAP.put("票易捷辅助v4.0", "1b6e6839-4293-4f9c-a448-268a09147fda");
RJBBMAP.put("票易捷辅助v1.0", "43ef1f8e-bf9b-4692-b9f3-a06ee7775cbd");
RJBBMAP.put("办税助手网商贷v1.0", "63ed43b0-1052-45b0-9d70-050ecb297e68");
RJBBMAP.put("文本接口v3.0", "75d54e4a-fff3-4fd6-a0af-704b55171556");
RJBBMAP.put("票易捷辅助v2.0", "78f35e62-d306-440c-b55f-894fbd4d594e");
RJBBMAP.put("办税助手v1.0", "7de6e05a-c997-4706-adc7-ffd82578cb9a");
RJBBMAP.put("沪友远程认证系统v2.0", "8e8b046f-5dca-414d-a278-3bcb574f9f4e");
RJBBMAP.put("文本接口v1.0", "8e8b046f-5dca-414d-a278-3bcb574f9f4e");
RJBBMAP.put("发票管理v2.0", "926892ee-bd3f-4b09-94aa-4fcac170fa61");
RJBBMAP.put("文本接口v2.0", "a4ebb7a4-b5ff-46cc-b4d4-0849e4ea75e8");
RJBBMAP.put("办税助手v2.0", "b78a0d9c-4be0-41d6-8b96-658114f860d5");
RJBBMAP.put("票易捷辅助v5.0", "c8bd5bf0-bea5-4ce1-a4e0-4b6fa02505e8");
RJBBMAP.put("票易捷辅助v3.0", "d85d4053-ca39-40a4-8b75-cb68efc838ca");
RJBBMAP.put("机动车自动开票1.0.0.1", "da1d2f80-e6fa-4142-9d27-f802d703e4a0");
/*数据库数据
* 08e9a5b8-f896-484d-9969-044559303ba9 沪友远程认证系统v1.0
1b6e6839-4293-4f9c-a448-268a09147fda 票易捷辅助v4.0
43ef1f8e-bf9b-4692-b9f3-a06ee7775cbd 票易捷辅助v1.0
63ed43b0-1052-45b0-9d70-050ecb297e68 办税助手网商贷v1.0
75d54e4a-fff3-4fd6-a0af-704b55171556 文本接口v3.0
78f35e62-d306-440c-b55f-894fbd4d594e 票易捷辅助v2.0
7de6e05a-c997-4706-adc7-ffd82578cb9a 办税助手v1.0
897bb9f0-872b-45ef-9224-1f71bd4526a9 沪友远程认证系统v2.0
8e8b046f-5dca-414d-a278-3bcb574f9f4e 文本接口v1.0
926892ee-bd3f-4b09-94aa-4fcac170fa61 发票管理v2.0
a4ebb7a4-b5ff-46cc-b4d4-0849e4ea75e8 文本接口v2.0
b78a0d9c-4be0-41d6-8b96-658114f860d5 办税助手v2.0
c8bd5bf0-bea5-4ce1-a4e0-4b6fa02505e8 票易捷辅助v5.0
d85d4053-ca39-40a4-8b75-cb68efc838ca 票易捷辅助v3.0
da1d2f80-e6fa-4142-9d27-f802d703e4a0 机动车自动开票1.0.0.1
*/
/*
* 数据库数据
* 初始化权限ID及对应的权限值 key: qx值 value:qxID
*/
QXMAP.put("1","8a1e78a5-405a-4919-8c89-68c6f6e564d5" );
QXMAP.put("2", "7b5a7079-1eff-47bc-bff4-75d0aef78269");
/*
7b5a7079-1eff-47bc-bff4-75d0aef78269 2 无扫描枪
8a1e78a5-405a-4919-8c89-68c6f6e564d5 1 有扫描枪
*/
/*数据库数据
* 初始化软件类型及对应的软件类型ID信息 key:rjlx value:rjlxId
*/
RJLXMAP.put("发票管理", "5dae44f5-dc71-4a98-b0b2-1666b4a178f9");
RJLXMAP.put("办税助手网商贷", "6bbf5b8c-2a39-4b9d-9cfb-492611f4621a");
RJLXMAP.put("机动车自动开票", "798a8220-7fb6-40b7-b355-61a42cf5613b");
RJLXMAP.put("沪友远程认证系统", "7f0c5652-ee12-4d89-9169-d2652edd58c5");
RJLXMAP.put("票易捷辅助", "81e200d1-ec7c-4e7b-a7bb-04ae0d6849c2");
RJLXMAP.put("文本接口", "bb6ef58c-3cff-4b20-a45e-c9af85e72456");
RJLXMAP.put("车购税申报系统", "cadc1745-8a5e-4807-acb0-93d35b7abe72");
/* 数据库数据
5dae44f5-dc71-4a98-b0b2-1666b4a178f9 发票管理
6bbf5b8c-2a39-4b9d-9cfb-492611f4621a 办税助手网商贷
798a8220-7fb6-40b7-b355-61a42cf5613b 机动车自动开票
7f0c5652-ee12-4d89-9169-d2652edd58c5 沪友远程认证系统
81e200d1-ec7c-4e7b-a7bb-04ae0d6849c2 票易捷辅助
bb6ef58c-3cff-4b20-a45e-c9af85e72456 文本接口
cadc1745-8a5e-4807-acb0-93d35b7abe72 车购税申报系统
*/
}
/*
*/
/**
* main主方法测试
* @author zt
* @Date 2016年2月19日
* @param args
*/
public static void main(String[] args) {
FileInputStream fis;
try {
fis = new FileInputStream("F://BOOK1.xls");
parseEXCEL(fis);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 解析Excel数据流
* @author zt
* @Date 2016年2月18日
* @param inputStream
* @return
* @throws Exception
*/
public static List<Encryption> parseEXCEL(InputStream inputStream) throws Exception {
int count =0;
Map<String,String> map = new HashMap<String,String>();
List<Encryption> encrys=new ArrayList<Encryption>();
/*
* 处理输入流,获取一个对应的表格对象
*/
Workbook excel = Workbook.getWorkbook(inputStream);
/*
* 遍历表格对象获取表格中sheet子表
*/
for(int i=0;i<excel.getNumberOfSheets();i++){
/*
*获取第i个子表对象
*/
Sheet sheet=excel.getSheet(i);
/*
*获取当前子表格总行数
*/
int rows=sheet.getRows();//每个表格总行数
/*
* 如果第一行为标题则将第一行作为标题行单独处理
*/
Cell[] rowTitle=sheet.getRow(0);//获取标题行
/*
* 从第二行开始遍历
*/
for(int f=1;f<rows;f++){
/*
* 获取当前前行对象
*/
Cell[] row=sheet.getRow(f);
/*
* 获取行总格数
*/
int rowLen = row.length;
for(int e=0;e<rowLen;e++){
/*
* 标题对应的数据 标题key 数据value 存入map中
*/
map.put(rowTitle[e].getContents(), row[e].getContents());
}
/*
* 将map中的数据存入项目对应的实体对象中,获取一个实体对象,并将这个对象放入list集合中返回,方便数据库存储
*/
encrys.add(setEncryInfo(map));
// System.out.println("第"+count+"行");
// count++;
// System.out.println(map);
}
}
return encrys;
}
/**
* map数据存入实体类对象
* @author zt
* @Date 2016年2月18日
* @param map
* @return
*/
public static Encryption setEncryInfo(Map map){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-ss-mm");
Encryption encry = new Encryption();
if(map.get("userid")!=null&&map.get("userid")!=""){
encry.setUserid(map.get("userid").toString()) ;
}else{
encry.setUserid(LoginInfoUser.user.getUserid());
}
if(map.get("bcwjlj")!=null&&map.get("bcwjlj")!=""){
encry.setBcwjlj(map.get("bcwjlj").toString());
}
if(map.get("bz")!=null&&map.get("bz")!=""){
encry.setBz(map.get("bz").toString());
}
if(map.get("createtime")!=null&&map.get("createtime")!=""){
encry.setCreatetime(map.get("createtime").toString());
}else{
encry.setCreatetime(sdf.format(new Date()));
}
if(map.get("dh")!=null&&map.get("dh")!=""){
encry.setDh(map.get("dh").toString());
}
if(map.get("dz")!=null&&map.get("dz")!=""){
encry.setDz(map.get("dz").toString());
}
if(map.get("gsmc")!=null&&map.get("gsmc")!=""){
encry.setGsmc(map.get("gsmc").toString());
}
if(map.get("kzzd3")!=null&&map.get("kzzd3")!=""){
encry.setKzzd3(map.get("kzzd3").toString());
}
if(map.get("kzzd4")!=null&&map.get("kzzd4")!=""){
encry.setKzzd4(map.get("kzzd4").toString());
}
if(map.get("kzzd5")!=null&&map.get("kzzd5")!=""){
encry.setKzzd5(map.get("kzzd5").toString());
}
if(map.get("kzzd6")!=null&&map.get("kzzd6")!=""){
encry.setKzzd6(map.get("kzzd6").toString());
}
if(map.get("qx")!=null&&map.get("qx")!=""){
encry.setQx(map.get("qx").toString());
encry.setQxid(QXMAP.get(map.get("qx").toString()));
}
/*
if(map.get("qxid")!=null){
encry.setQxid(map.get("qxid").toString());
}else{
if(map.get("qx")!=null){
encry.setQxid(QXMAP.get(map.get("qx").toString()));
}
}
*/
if(map.get("rjbb")!=null&&map.get("rjbb")!=""){
encry.setRjbb(map.get("rjbb").toString());
encry.setRjbbid(RJBBMAP.get(map.get("rjbb").toString()));
}
/*
if(map.get("rjbbid")!=null){
encry.setRjbbid(map.get("rjbbid").toString());
}else{
if(map.get("rjbb")!=null){
encry.setRjbbid(RJBBMAP.get(map.get("rjbb").toString()));
}
}
*/
if(map.get("rjlx")!=null&&map.get("rjlx")!=""){
encry.setRjlx(map.get("rjlx").toString());
encry.setRjlxid(RJLXMAP.get(map.get("rjlx").toString()));
}
/*
if(map.get("rjlxid")!=null){
encry.setRjlxid(map.get("rjlxid").toString());
}else{
if(map.get("rjlx")!=null){
encry.setRjlxid(RJLXMAP.get(map.get("rjlx").toString()));
}
}
*/
if(map.get("sbh1")!=null&&map.get("sbh1")!=""){
encry.setSbh1(map.get("sbh1").toString());
}
if(map.get("sbh2")!=null&&map.get("sbh2")!=""){
encry.setSbh2(map.get("sbh2").toString());
}
if(map.get("sh")!=null&&map.get("sh")!=""){
encry.setSh(map.get("sh").toString());
}
if(map.get("skph")!=null&&map.get("skph")!=""){
encry.setSkph(map.get("skph").toString());
}
if(map.get("sqzt")!=null&&map.get("sqzt")!=""){
encry.setSqzt(map.get("sqzt").toString());
}else{
encry.setSqzt("未授权");
}
return encry;
}
}