概述
将Excel中的数据存入数据库与在系统中操作的唯一不同就是数据源不同,其中从Excel中导入数据的关键在于从Excel中读取每行数据。
如何从excel中读取数据?下面代码是简单的导入过程,具体需要根据自己的数据来改。
- 读取该文件
- 获取该excel中所需sheet表格内容
- 根据表格中数据,将需要的字段存入数据库
public void Inform() throws Exception
{
private FileItem file;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String filename = file.getName();
String fileType = filename.subString(filename.lastIndexOf(".")+1,filename.length());
InputStream stream = file.getInputStream();
Workbook wb = null;
if (fileType.equals("xls")){
wb = new HSSFWorkbook(stream);
}else if(fileType.equals("xlsx")){
wb = new HSSFWorkbook(stream);
}else{
throw new CssException("导入文件格式有误");
}
int sheetNum = wb.getNumberOfSheet();//获取sheet数目
if(sheetNum > 0){
Sheet sheet = wb.getSheetAt(0);//获取第一个sheet表
if(sheet != null){
int rowNum = sheet.getLastRowNum();
if(rowNum >= 1){
//用到了缓存
TransactionCache tx = null;
int errorRow = 0;
try{
tx = new TransactionCache();
List<Student>list = new ArrayList<>();
String uuid = Uuid.getUuid();//获取uuid,如果不需要可以不加
Row rowTitle = sheet.getRow(0);//第一行数据为行标,不存入数据库
if(rowTitle.getLastCellNum()==_列数此处用3_){
for(int i=1;i<rowNum+1;i++){
Row row = sheet.getRow(i);
//获取每行每列的数据,以3列为例 以姓名(字符串类型)、生日(日期类型)、年龄(double类型)
String name = getCellStrValue(row.getCell(0));
Date bir = getCellDateValue(row.getCell(1));
String ageStr= getCellStrValue(row.getCell(2));
Double age = Double.valueOf(ageStr);
Student stu = new Student();
stu.setName(name);
stu.setBir(bir);
stu.setAge(age);
list.add(stu);
}
tx.save(list);
tx.commit();
}
}
}
}
}
}
private Date getCellDateValue(Cell cell){
if(cell == null){
return null;
}
Date date = null;
try{
date = cell.getDateCellValue();
}catch(Exception e){
try{
String dateStr = cell.getStringCellValue();
date = sdf.parse(dateStr);
}catch(ParseException parseException){
parseException.printStackTrace();
}
}
return date;
}
private String getCellStrValue(Cell cell) {
if (cell == null) {
return "";
}
String str = null;
int cellType = cell.getCellType();
switch (cellType) {
case 0:
str = Math.round(cell.getNumericCellValue()) + "";
break;
case 1:
str = cell.getStringCellValue();
break;
case 2:
str = "";
break;
case 3:
str = null;
break;
case 4:
str = cell.getBooleanCellValue() + "";
break;
case 5:
str = "错误" + cell.getErrorCellValue() + "";
}
return str;
}
最后
以上就是成就哈密瓜为你收集整理的Java版将Excel表格数据导入数据库的全部内容,希望文章能够帮你解决Java版将Excel表格数据导入数据库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复