poi导入数据

本文介绍了一个使用SSM框架结合JSP页面实现Excel数据导入的方法。该方法能够解析Excel文件,并将数据逐行读取后存入数据库中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是一个测试写的导入固定模板的excel表的数据(ssm+jsp)

/**
* 导入数据

* @param file
* @param redirectAttributes
* @return
*/
@SuppressWarnings("resource")
@RequiresPermissions("sys:messageSendLog:edit")
@RequestMapping(value = "import", method = RequestMethod.POST)
public String importFile(MultipartFile file, RedirectAttributes redirectAttributes)throws Exception {
// 获取文件

String fileName = file.getOriginalFilename();
file.transferTo(new File(fileName));
org.apache.poi.ss.usermodel.Workbook book = null;  
         try {  
             book = new XSSFWorkbook(fileName);  
         } catch (Exception ex) {  
        book = new org.apache.poi.hssf.usermodel.HSSFWorkbook(new FileInputStream(fileName));  
         }  
         org.apache.poi.ss.usermodel.Sheet sheet = book.getSheetAt(0);  
         //获取到Excel文件中的所有行数  
         int rows = sheet.getPhysicalNumberOfRows();  
         int realRows = rows-2;//去除第一、二行
         //遍历行  
         for (int i = 2; i < rows; i++) {  
               // 读取左上端单元格  
         Row row = sheet.getRow(i);  
               // 行不为空  
if (row != null) {
// 获取到Excel文件中的所有的列
/*int cells = row.getPhysicalNumberOfCells();*/
MessageSendLog msLog = new MessageSendLog();
// 遍历列
/* for (int j = 1; j < cells; j++) { */
// 获取到列的值
org.apache.poi.ss.usermodel.Cell cell = row.getCell(1);
if (StringUtils.isNotBlank(cell.getStringCellValue())) {
msLog.setMessageContent(cell.getStringCellValue());
}


cell = row.getCell(2);
if (StringUtils.isNotBlank(cell.getStringCellValue())) {//状态
String status = cell.getStringCellValue();
String statusValue = "";
if ("xx".equals(status)) {
statusValue = DictUtils.getDictValue("xx", "send_status", "");
msLog.setStatus(statusValue);
}else if ("xx".equals(status)) {
statusValue = DictUtils.getDictValue("发送成功", "send_status", "");
msLog.setStatus(statusValue);
}else if("xx".equals(status)){
statusValue = DictUtils.getDictValue("成功失败", "send_status", "");
msLog.setStatus(statusValue);
}

}


cell = row.getCell(3);
if (StringUtils.isNotBlank(cell.getStringCellValue())) {
String messageType = cell.getStringCellValue();
Integer messageTypeInteger =0;
String messageTypeValue = "";
if ("xx".equals(messageType)) {
messageTypeValue = DictUtils.getDictValue(messageType, "message_type", "");
messageTypeInteger = Integer.valueOf(messageTypeValue);
msLog.setMessageType(messageTypeInteger);
}else if ("xx".equals(messageType)) {
messageTypeValue = DictUtils.getDictValue(messageType, "message_type", "");
messageTypeInteger = Integer.valueOf(messageTypeValue);
msLog.setMessageType(messageTypeInteger);
}else if("xx".equals(messageType)){
messageTypeValue = DictUtils.getDictValue(messageType, "message_type", "");
messageTypeInteger = Integer.valueOf(messageTypeValue);
msLog.setMessageType(messageTypeInteger);
}
}


cell = row.getCell(4);
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss");
String sendTime = cell.getStringCellValue();
if (StringUtils.isNotBlank(sendTime)) {
Date date = sdf.parse(sendTime);
msLog.setSendTime(date);
}
cell = row.getCell(5);
String num = cell.getStringCellValue();
if (StringUtils.isNotBlank(num)) {
Integer newNum = Integer.valueOf(num);
msLog.setResendNum(newNum);
}
cell = row.getCell(6);
if (StringUtils.isNotBlank(cell.getStringCellValue())) {
msLog.setSendBy(cell.getStringCellValue());
}

cell = row.getCell(7);
if (StringUtils.isNotBlank(cell.getStringCellValue())) {
msLog.setSendTelephone(cell.getStringCellValue());
}
cell = row.getCell(8);
if (StringUtils.isNotBlank(cell.getStringCellValue())) {
msLog.setSendUnit(cell.getStringCellValue());
}


cell = row.getCell(9);
if (StringUtils.isNotBlank(cell.getStringCellValue())) {
msLog.setPrincipalBy(cell.getStringCellValue());
}


cell = row.getCell(10);
if (StringUtils.isNotBlank(cell.getStringCellValue())) {
msLog.setPrincipalTelephone(cell.getStringCellValue());
}


cell = row.getCell(11);
if (StringUtils.isNotBlank(cell.getStringCellValue())) {
msLog.setPrincipalUnit(cell.getStringCellValue());
}


cell = row.getCell(12);
SimpleDateFormat sdf2 = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss");
String createTime = cell.getStringCellValue();
if (StringUtils.isNotBlank(createTime)) {
Date date2 = sdf2.parse(createTime);
msLog.setCreateTime(date2);
}

cell = row.getCell(13);
if (StringUtils.isNotBlank(cell.getStringCellValue())) {//
String remindType = cell.getStringCellValue();
Integer remindTypeInteger = 0;
String remindTypeValue = "";
switch (remindType) {
case "test1":
remindTypeValue = DictUtils.getDictValue(remindType, "remind_type", "");
remindTypeInteger = Integer.valueOf(remindTypeValue);
msLog.setRemindType(remindTypeInteger);
break;
case "test2":
remindTypeValue = DictUtils.getDictValue(remindType, "remind_type", "");
remindTypeInteger = Integer.valueOf(remindTypeValue);
msLog.setRemindType(remindTypeInteger);
break;
case "test3":
remindTypeValue = DictUtils.getDictValue(remindType, "remind_type", "");
remindTypeInteger = Integer.valueOf(remindTypeValue);
msLog.setRemindType(remindTypeInteger);
break;
case "test4":
remindTypeValue = DictUtils.getDictValue(remindType, "remind_type", "");
remindTypeInteger = Integer.valueOf(remindTypeValue);
msLog.setRemindType(remindTypeInteger);
break;


default://test5
remindTypeValue = DictUtils.getDictValue(remindType, "remind_type", "");
remindTypeInteger = Integer.valueOf(remindTypeValue);
msLog.setRemindType(remindTypeInteger);
break;
}

}

cell = row.getCell(14);
if (StringUtils.isNotBlank(cell.getStringCellValue())) {
String remindMode = cell.getStringCellValue();
Integer remindModeInteger = 0;
String remindModeValue = "";
if("xxx".equals(remindMode)){
remindModeValue = DictUtils.getDictValue(remindMode, "remind_mode", "");
remindModeInteger = Integer.valueOf(remindModeValue);
msLog.setRemindMode(remindModeInteger);
}else if ("xxx".equals(remindMode)) {
remindModeValue = DictUtils.getDictValue(remindMode, "remind_mode", "");
remindModeInteger = Integer.valueOf(remindModeValue);
msLog.setRemindMode(remindModeInteger);
}else if ("xxx".equals(remindMode)) {
remindModeValue = DictUtils.getDictValue(remindMode, "remind_mode", "");
remindModeInteger = Integer.valueOf(remindModeValue);
msLog.setRemindMode(remindModeInteger);
}
}
messageSendLogService.save(msLog);
addMessage(redirectAttributes, "成功导入"+realRows+"数据");
}
}
return "redirect:" + adminPath + "/sys/messageSendLog/list?repage";
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值