`

java excel导入数据库

    博客分类:
  • java
 
阅读更多

      最近项目中让做将excel数据导入到数据库的功能,将自己的方法分享一下。

      步骤,如果文件多读取文件的时候根据文件名判断读取流,读取留后遍历sheet,根据sheet名确定数据导入哪个表中,对于表头我们需要做映射关系,我这里最初使用的是用.properties配置文件,之后觉得放到map集合中更方便,则将excel表头的文字与实体的属性名做映射关系,然后下面的数据,每一行作为一个对象,其中列的确定是在读取表数据的时候再次做映射关系的,最后通过set方法封装实体插入数据库

1.配置映射关系

public static Map<String, Object> getBrandImportMap() {
		Map<String, Object> brandMap = new HashMap<String, Object>();
		brandMap.put("品牌基本信息", "brand_info");
		brandMap.put("所属供应商名称(33)", "name");
		brandMap.put("语言类型(2)", "lang");
		brandMap.put("品牌名称(33)", "brandName");
		brandMap.put("所属行业(33)", "industry");
		brandMap.put("品牌简述(165)", "description");
		brandMap.put("风格(33)", "format");
		brandMap.put("来源地(66)", "fromTo");
		brandMap.put("描述(666)", "remark");
		brandMap.put("状态(2)", "status");
		brandMap.put("品牌图片信息", "brand_photo");
		brandMap.put("图片名称", "url");
		brandMap.put("图片类型(2)", "photoType");
		
		return brandMap;
	}

 2.读取表头

/**
	 * 读取头sheet的表头信息
	 * @param sheet
	 * @return
	 */
	public static List<Cell> getSheetHeader(Sheet sheet) {
		List<Cell> sheetList = new ArrayList<Cell>();
		//读取第一行数据(表头)
		Row rows = sheet.getRow(0);
		short cellCount = rows.getLastCellNum();//获取列数
		for(int i = 0; i < cellCount; i++) {
			sheetList.add(rows.getCell(i));
		}
		return sheetList;
	}

 3表头映射对应的数据关系

public static List<Map<String, Object>> getSheetData(Sheet sheet, Map<String, Object> propValue) {
	List<Cell> sheetHeader = getSheetHeader(sheet);
	List<Map<String, Object>> sheetList = new ArrayList<Map<String, Object>>();
	int sheetRows = sheet.getLastRowNum();//获取行数
	int cells = sheetHeader.size();//获取列数
	Map<String, Object> rowMap = null;
	//从第一行开始读取
	for(int i = 1; i <= sheetRows; i++) {
		Row row = sheet.getRow(i);
		rowMap = new HashMap<String, Object>();
		for(int j = 0; j < cells; j++) {			
		//System.out.println( propValue.get(sheetHeader.get(j).toString()));
		if(propValue.get(String.valueOf(sheetHeader.get(j)).trim()) != null) {
			if(row.getCell(j, Row.RETURN_NULL_AND_BLANK) != null) {
				if(row.getCell(j).getCellType() == Cell.CELL_TYPE_NUMERIC) {
		if(HSSFDateUtil.isCellDateFormatted(row.getCell(j))) {
					if(row.getCell(j).getDateCellValue() != null) {
										rowMap.put(propValue.get(sheetHeader.get(j).toString()).toString(), DateTimeUtil.convertDateToStr(row.getCell(j).getDateCellValue(), "yyyy-MM-dd HH:mm:ss"));
//DateTimeUtil.convertDateToStr()是用于将date时间转成字符串,方法可以自己写				//System.out.println(row.getCell(j).getDateCellValue());
									}
								} else {
									rowMap.put(propValue.get(sheetHeader.get(j).toString()).toString(), format.format(row.getCell(j).getNumericCellValue()));
								}
							} else  {
								rowMap.put(String.valueOf(propValue.get(sheetHeader.get(j).toString().trim())), row.getCell(j, Row.RETURN_NULL_AND_BLANK));
							}
						} 
				}
			}
			sheetList.add(rowMap);
		}
		return sheetList;
	}

 4.后面的代码就是将3中的map对象通过get方法获取对应的值将其set到实体然后插入数据库,对于不懂的可以留言,如果有更好方法建议提出意见,共同学习。

分享到:
评论

相关推荐

    javaexcel导入数据库.pdf

    由于给定的内容中存在一些OCR识别错误和重复文字,我将基于提供的有效信息,对Java操作Excel并将其数据导入数据库的知识点进行详细说明。为方便理解和执行,我会先修正可能的OCR扫描错误,并排除重复内容,然后详细...

    java excel 读写 java excel 导入数据库

    Java Excel 读写与导入数据库是Java开发中常见的任务,特别是在数据处理和分析场景下。以下将详细讲解这个主题,并提供一些关键知识点。 首先,Java处理Excel文件主要依赖于两个库:Apache POI 和 JExcelAPI。...

    简单Java excel导入数据库 附数据库(mysql)

    这个“简单Java excel导入数据库 附数据库(mysql)”的项目旨在提供一个基础的学习示例,虽然可能存在一些问题,但其主要功能已经实现,能够帮助初学者理解如何操作。 首先,我们要了解涉及的主要技术点: 1. **...

    java excel导入数据库/java excel导入

    struts+hibernate实现excel导入数据库 注意:Excel导入是指读服务器端的数据,也就是说,如果想用客户端的Excel是需要把Excel文件先上传到服务器上的,然后再导入,我也是前几天才发现的。

    javaexcel导入数据库[借鉴].pdf

    JavaExcel 导入数据库知识点 JavaExcel 是一个基于 Java 语言的 Excel 文件处理库,它提供了对 Excel 文件的读取、写入和操作功能。在本文中,我们将探讨如何使用 JavaExcel 将 Excel 文件导入到数据库中。 Java...

    JAVA实现Excel导入数据库

    以上就是使用Java实现Excel数据导入数据库的主要步骤和关键知识点。通过熟练掌握这些技术,你将能够构建出高效且可靠的Excel到数据库导入系统。在实际应用中,还可能需要根据具体需求进行调整和定制,如错误处理、...

    java Excel导入数据库

    在Java编程中,将Excel数据导入到数据库是一项常见的任务,特别是在数据处理和分析场景中。本文将详细讲解如何使用Java实现这一功能,包括处理Excel多个sheet的数据。 首先,我们需要了解两个关键库:Apache POI和...

    java读取excel数据导入数据库源码

    java读取excel数据导入数据库源码 java读取excel数据导入数据库源码

    java web Excel导入数据库

    综上所述,Java Web中Excel数据导入数据库的过程涉及到文件上传、Excel读取、数据处理和数据库操作等多个技术环节。通过合理选择和使用各种库,我们可以构建高效且可靠的导入系统,满足企业对大量数据处理的需求。在...

    java excel 导入手机号码(包括对手机的验证)

    * 此代码是完成从excel导入电话号码,将正确的电话号码保存到set集合中,因为set集合对于重复的值会覆盖,所以达到了去重复的值的用例,并累计了不正确的电话号码的个数,对电话号码进行了验证有效性。所需要的 dom4...

    java实现excel导入数据库

    在Java编程中,将Excel数据导入到MySQL数据库是一项常见的任务,尤其在数据处理和分析的场景下。要完成这个过程,我们需要使用特定的库来读取Excel文件,并使用JDBC(Java Database Connectivity)来与MySQL数据库...

    java实现Excel数据导入到数据库

    在Java编程环境中,将Excel数据导入到数据库以及将数据库数据导出到Excel是常见的数据处理需求。本篇文章将深入探讨如何使用Java实现这两个功能,主要涉及的技术栈包括Apache POI库用于操作Excel,以及JDBC(Java ...

    大数据Excel通过POI导入数据库通用设计方案

    【大数据Excel通过POI导入数据库通用设计方案】 大数据处理中,Excel作为常见的数据交换格式,其导入到数据库的需求频繁出现。为了提高效率并避免重复工作,本方案旨在提供一种通用的Excel导入策略,利用Apache POI...

    java导入excel到数据库

    对于导入数据库,你需要读取Excel数据,将其转换为适合数据库操作的格式,然后通过数据库连接插入数据。 5. **Excel模板**: 提供的Excel模板可能包含了预定义的格式、样式和数据结构,用户可以按照模板填写数据,...

    java实现Excel数据导入到mysql数据库.zip

    在本项目中,需要建立到MySQL数据库的连接,执行INSERT或UPDATE语句,以便将Excel数据导入数据库。如果数据库中已存在相同数据,根据描述,会执行UPDATE操作,这需要在SQL语句中设置条件判断。 对于数据导入,如果...

    excel树形字典,导入数据库

    "Excel树形字典,导入数据库"这个主题就聚焦于如何将结构化的Excel数据,特别是树形结构的数据,有效地整合到数据库系统中。 首先,我们需要理解什么是"树形字典"。在Excel中,树形字典通常指的是通过表格形式表示...

    springboot实现将Excel导入数据库

    要实现Excel导入功能,我们首先需要处理Excel文件。在Java中,我们可以使用Apache POI库来操作Excel文件。POI提供了丰富的API,可以读取、写入Excel文件。在本例中,我们需要使用HSSFWorkbook(对于老版本的Excel ....

Global site tag (gtag.js) - Google Analytics