使用Java实现Excel导入功能
来源:互联网 发布:剑三霸刀捏脸数据 编辑:程序博客网 时间:2024/06/10 14:57
一、导入xls格式的Excel
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile file = multipartRequest.getFile("excelFile");
List<Entity> entityList = new ArrayList<Entity>();
String message="";//反馈信息
Workbook wb = null;
try {
wb = Workbook.getWorkbook(file.getInputStream());
Sheet sheet = wb.getSheet(0);
int totalrows = sheet.getRows();
if(totalrows<=1)
{
message ="导入数据为空,导入失败";
modelMap.put("message", message);
return "";
}else{
for(int i=1;i<totalrows;i++)
{
String key1=sheet.getCell(0, i).getContents().trim();
String key2=sheet.getCell(1,i).getContents().trim();
String key3=sheet.getCell(2, i).getContents().trim();
String key4=sheet.getCell(3,i).getContents().trim();
:
:
:
Entity entity=new Entity();//将取出单位数据放入实体类
entity.setKey1(key1);
entity.setKey2(key2);
entity.setKey3(key3);
entity.setKey4(key4);
entityList.add(entity); //将组装的实体放入list中
}
uploadService.saveAll(salesList);//将实体列表存入数据库
}
}catch(Exception e){
e.printStackTrace();
modelMap.put("message", e);
}
return "url...";
}
二、导入xlsx格式的Excel
String message="";//反馈信息
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile file = multipartRequest.getFile("excelFile");
boolean bool =false;
if(bool){
message="有其他人在导入数据,请稍后再试。";
modelMap.put("message", message);
modelMap.put("windowId", "windowname");
return "url...";
}
bool = true;
XSSFWorkbook wb = null;
List<Entity> entityList=new ArrayList<Entity>();
try {
InputStream fileInput = file.getInputStream();
wb=new XSSFWorkbook(fileInput);
// 创建基于stream的工作薄对象
XSSFSheet sheet = wb.getSheetAt(0);//获取sheet1中的数据
XSSFRow r = sheet.getRow(0);//获取表头
int [] column= new int[columnSize];
for(int i=0;i<sheet.getPhysicalNumberOfRows();i++){
String name = "";
name = name+getValue(r.getCell(j));
switch(name){
case "column1": column[0] = j; break;
case "column2": column[1] = j; break;
case "column3": column[2] = j; break;
:
:
:
}
}
for (int rowNum = 3; rowNum <= sheet.getLastRowNum(); rowNum++) {
XSSFRow row = sheet.getRow(rowNum);
if (row!= null) {
Entity entity=new Entity();
entity.setKey1(getValue(row.getCell(a[0])));
entity.setKey2(getValue(row.getCell(a[1])));
entity.setKey3(getValue(row.getCell(a[2])));
entity.setKey4(getValue(row.getCell(a[3])));
:
:
:
entityList.add(entity);
}
}
entityService.save(entityList);
}catch (Exception e) {
message="数据导入失败!";
e.printStackTrace();
}finally{
try {
if (null != wb)
wb.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//将从Excel获取的数据进行格式化
public String getValue(XSSFCell cell){
String result="";
if(cell!=null){
switch (cell.getCellType()){
case XSSFCell.CELL_TYPE_STRING:
result = cell.getRichStringCellValue().getString();
break;
case XSSFCell.CELL_TYPE_NUMERIC:
if(DateUtil.isCellDateFormatted(cell)){
Date date =cell.getDateCellValue();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
result =df.format(date);
}else{
String a = String.valueOf(cell.getNumericCellValue());
return a.substring(0,a.indexOf("."));
}
break;
case XSSFCell.CELL_TYPE_FORMULA:
cell.setCellType(XSSFCell.CELL_TYPE_STRING);
result = cell.getStringCellValue();
break;
default:
result = "";
break;
}
}
return result;
}
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile file = multipartRequest.getFile("excelFile");
List<Entity> entityList = new ArrayList<Entity>();
String message="";//反馈信息
Workbook wb = null;
try {
wb = Workbook.getWorkbook(file.getInputStream());
Sheet sheet = wb.getSheet(0);
int totalrows = sheet.getRows();
if(totalrows<=1)
{
message ="导入数据为空,导入失败";
modelMap.put("message", message);
return "";
}else{
for(int i=1;i<totalrows;i++)
{
String key1=sheet.getCell(0, i).getContents().trim();
String key2=sheet.getCell(1,i).getContents().trim();
String key3=sheet.getCell(2, i).getContents().trim();
String key4=sheet.getCell(3,i).getContents().trim();
:
:
:
Entity entity=new Entity();//将取出单位数据放入实体类
entity.setKey1(key1);
entity.setKey2(key2);
entity.setKey3(key3);
entity.setKey4(key4);
entityList.add(entity); //将组装的实体放入list中
}
uploadService.saveAll(salesList);//将实体列表存入数据库
}
}catch(Exception e){
e.printStackTrace();
modelMap.put("message", e);
}
return "url...";
}
二、导入xlsx格式的Excel
String message="";//反馈信息
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile file = multipartRequest.getFile("excelFile");
boolean bool =false;
if(bool){
message="有其他人在导入数据,请稍后再试。";
modelMap.put("message", message);
modelMap.put("windowId", "windowname");
return "url...";
}
bool = true;
XSSFWorkbook wb = null;
List<Entity> entityList=new ArrayList<Entity>();
try {
InputStream fileInput = file.getInputStream();
wb=new XSSFWorkbook(fileInput);
// 创建基于stream的工作薄对象
XSSFSheet sheet = wb.getSheetAt(0);//获取sheet1中的数据
XSSFRow r = sheet.getRow(0);//获取表头
int [] column= new int[columnSize];
for(int i=0;i<sheet.getPhysicalNumberOfRows();i++){
String name = "";
name = name+getValue(r.getCell(j));
switch(name){
case "column1": column[0] = j; break;
case "column2": column[1] = j; break;
case "column3": column[2] = j; break;
:
:
:
}
}
for (int rowNum = 3; rowNum <= sheet.getLastRowNum(); rowNum++) {
XSSFRow row = sheet.getRow(rowNum);
if (row!= null) {
Entity entity=new Entity();
entity.setKey1(getValue(row.getCell(a[0])));
entity.setKey2(getValue(row.getCell(a[1])));
entity.setKey3(getValue(row.getCell(a[2])));
entity.setKey4(getValue(row.getCell(a[3])));
:
:
:
entityList.add(entity);
}
}
entityService.save(entityList);
}catch (Exception e) {
message="数据导入失败!";
e.printStackTrace();
}finally{
try {
if (null != wb)
wb.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//将从Excel获取的数据进行格式化
public String getValue(XSSFCell cell){
String result="";
if(cell!=null){
switch (cell.getCellType()){
case XSSFCell.CELL_TYPE_STRING:
result = cell.getRichStringCellValue().getString();
break;
case XSSFCell.CELL_TYPE_NUMERIC:
if(DateUtil.isCellDateFormatted(cell)){
Date date =cell.getDateCellValue();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
result =df.format(date);
}else{
String a = String.valueOf(cell.getNumericCellValue());
return a.substring(0,a.indexOf("."));
}
break;
case XSSFCell.CELL_TYPE_FORMULA:
cell.setCellType(XSSFCell.CELL_TYPE_STRING);
result = cell.getStringCellValue();
break;
default:
result = "";
break;
}
}
return result;
}
阅读全文
0 0
- 使用Java实现Excel导入功能
- Java Excel导入功能的实现
- EXCEL导入功能java代码实现
- java jxl实现excel导入功能
- java实现Excel导入功能代码
- EXCEL导入功能java代码实现
- EXCEL导入功能java代码实现
- Java实现excel导入功能(1)
- Java 的 Excel 导入功能实现
- Java excel 导入功能
- java中使用poi实现导入Excel
- [学习笔记]EXCEL导入功能java代码实现
- java 实现excel中的数据导入到数据库的功能
- java 实现excel中的数据导入到数据库的功能
- java 实现excel中的数据导入到数据库的功能
- Java中Excel导入功能实现、excel导入公共方法_POI -
- 使用java生成excel功能实现
- Java实现导入Excel
- 关于多态的一些学习感悟
- 模型的dump与load
- adb devices存在偶现的no permission或者????问题
- 118. Pascal's Triangle
- 微信小程序开发-校园网小程序开发步骤
- 使用Java实现Excel导入功能
- listview里面的item的多种view模式(多种类型的item)
- 深度学习Matlab工具箱代码注释——cnnsetup.m
- 分词器anjs工具类KeyWordComputer中learnTool报错
- 低功耗蓝牙cc2541学习笔记之协议栈简介
- 牛客5(京东)
- 【补题】2017山东省赛A题 Return of the Nim
- Spring MVC 入门示例讲解
- 欢迎使用CSDN-markdown编辑器