本文实例为大家分享了Java中excel表数据的批量导入,供大家参考,具体内容如下
首先看下工具类:
import java.awt.Color;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.swing.text.AttributeSet;
import javax.swing.text.Element;
import javax.swing.text.html.CSS;
import javax.swing.text.html.HTMLdocument;
import javax.swing.text.html.HTMLEditorKit;
import cn.vrview.dev.common.exception.BusinessException;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.util.HtmlUtils;
import cn.vrview.dev.common.util.StringUtil;
public class ExcelTools {
private static Logger log = LogManager.getLogger();
public static InputStream exportXLS(Collection
再看下from.jsp页面
主界面jsp
复制代码 代码如下:导入
//导入
function importAction(){
d=$("#dlg").dialog({
title: '案由导入',
width: 500,
height: 500,
href:'${ctx}/bom/ciscaseaction/importAction/',
maximizable:true,
modal:true,
buttons:[{
text:'导入',
handler:function(){
$('#mainform').submit();
}
},{
text:'取消',
handler:function(){
d.panel('close');
}
}]
});
}
页面点击的效果是,点击导入会跳入from.jsp页面
再看controller层
@RequestMapping(value = "importAction", method = RequestMethod.GET)
public String importForm( Model model) {
model.addAttribute("action", "import");
return "system/cisCaseActionImoportForm";
}
@RequestMapping(value = "import", method = RequestMethod.POST)
@ResponseBody
public String importForm(@RequestParam("file") MultipartFile multipartFile, Model model) throws Exception {
cisCaseActionService.upload(multipartFile);
return "success";
}
service层
@SuppressWarnings({ "rawtypes", "unchecked" })
public void upload(MultipartFile multipartFile) throws Exception {
InputStream inputStream = multipartFile.getInputStream();
ExcelTools excelTools = new ExcelTools();
ExcelTools.SheetInfo sheetInfo = excelTools.new SheetInfo();
sheetInfo.setRowTitle(0);
Map columns = new HashMap();
columns.put("columns",new String[]{"name:案由名称", "violateLaw:违反法律", "punishBasis:处罚依据"});
sheetInfo.setColumnsMapping(columns);
List> mapList = ExcelTools.getExcel(inputStream, sheetInfo);
for (int i = 0; i < mapList.size(); i++){
HashMap map = mapList.get(i);
String name = map.get("name");
if (StringUtils.isEmpty(name)){
throw new BusinessException("第" + (i+2) + "案由名称不能为空");
}
String violateLaw = map.get("violateLaw");
String punishBasis = map.get("punishBasis");
CisCaseAction cisCaseAction=new CisCaseAction();
cisCaseAction.setName(name);
cisCaseAction.setViolateLaw(violateLaw);
cisCaseAction.setPunishBasis(punishBasis);
this.insert(cisCaseAction); //调用同一层的插入方法
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。