我是靠谱客的博主 成就哈密瓜,最近开发中收集的这篇文章主要介绍Java版将Excel表格数据导入数据库,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

将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表格数据导入数据库所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部