`
mayEyeInfo
  • 浏览: 5060 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 导入Excel 为 List

阅读更多

 

  1. 用户需求中曾经有写需要把Excel中的数据导入数据库中,不过每次都要一一对应Excel中的数据然后写程序,太繁琐,  后来想了一下,改成这样的,以后就方便导入数据,直接遍历List就可以把数据导入进来了。使用jxl.jar包进行操作Excel的
  2. /**
    	 * 
    	 * @param filePath 文件路径
    	 * @param clazz 存放的数据是那个对象的数据:类似User.class
    	 * @param field 标题中那个标题对应那个对象中的那个字段:map.add("Excel标题", "user的字段值")
    	 * @return
    	 */
    	private static List getExcel(String filePath, Class clazz,
    			Map<String, String> field) {
    		if (!filePath.endsWith("xls")) {
    			System.out.println("文件不是Excel");
    			return null;
    		}
    		List list = new ArrayList();
    		Workbook wk = null;
    		try {
    			wk = Workbook.getWorkbook(new File(filePath));
    			Sheet sheet = wk.getSheet(0);
    			Map<Integer, String> columnMap = readTitle(field, sheet.getRow(0));
    			if (columnMap == null || columnMap.size() == 0) {
    				System.out.println("没有查到相应的标题");
    				return null;
    			}
    			for (int i = 1; i < sheet.getRows(); i++) {
    				Cell[] cells = sheet.getRow(i);
    				if (cells.length == 0)
    					continue;
    				Set<Map.Entry<Integer, String>> set = columnMap.entrySet();
    				Object obj = clazz.newInstance();
    				for (Iterator<Map.Entry<Integer, String>> iter = set.iterator(); iter
    						.hasNext();) {
    					Map.Entry<Integer, String> entry = iter.next();
    					String fieldValue = cells[entry.getKey()].getContents()
    							.trim();
    					String fieldName = entry.getValue();
    					invokeMethod(clazz, obj, fieldName, fieldValue);
    				}
    				list.add(obj);
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    			return null;
    		} finally {
    			if (wk != null)
    				wk.close();
    		}
    		return list;
    	}
    
    	private static Object invokeMethod(Class<?> clazz, Object instance,
    			String fileName, String fieldValue) throws Exception {
    		Method getMethod = clazz.getMethod("get" + toFirstUpper(fileName));
    		Class<?> paraType = getMethod.getReturnType();
    		Method setMethod = clazz.getMethod("set" + toFirstUpper(fileName),
    				paraType);
    		Object value = transfType(paraType, fieldValue);
    		if (value != null)
    			setMethod.invoke(instance, value);
    		return instance;
    	}
    
    	private static Object transfType(Class<?> paraType, String target) {
    		Object result = null;
    		if (paraType == String.class) {
    			result = target;
    		} else if (paraType == Double.class) {
    			result = new Double(Double.parseDouble(target));
    		} else if (paraType == double.class) {
    			result = Double.parseDouble(target);
    		} else if (paraType == boolean.class) {
    			result = Boolean.parseBoolean(target);
    		} else if (paraType == Boolean.class) {
    			result = Boolean.valueOf(target);
    		} else if (paraType == int.class) {
    			result = Integer.parseInt(target);
    		} else if (paraType == Integer.class) {
    			result = Integer.decode(target);
    		} else if (paraType == long.class) {
    			result = Long.parseLong(target);
    		} else if (paraType == Long.class) {
    			result = Long.decode(target);
    		} else if (paraType == float.class) {
    			result = Float.parseFloat(target);
    		} else if (paraType == Float.class) {
    			result = Float.valueOf(target);
    		}
    		return result;
    	}
    
    	public static String toFirstUpper(String str) {
    		return str.replaceFirst(str.substring(0, 1), str.substring(0, 1)
    				.toUpperCase());
    	}
    
    	private static Map<Integer, String> readTitle(Map<String, String> fieldMap,
    			Cell[] cells) {
    		Map<Integer, String> columnMap = new HashMap<Integer, String>();
    		for (int i = 0; i < cells.length; i++) {
    			String content = cells[i].getContents().trim();
    			String field = fieldMap.get(content);
    			if (field != null) {
    				columnMap.put(i, field);
    			}
    		}
    		return columnMap;
    	}
     

 

分享到:
评论

相关推荐

    java 处理Excel 带 List

    本文将深入探讨如何使用Java来处理Excel,并特别关注如何将List对象导出为Excel文件。 首先,我们需要一个库来操作Excel,Apache POI是一个广泛使用的开源Java API,专门用于读写Microsoft Office格式的文件,包括...

    Java实现Excel导入导出

    Excel源代码,导入导出各种工具类 &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi-scratchpad 代码实例: String path = ""; byte[] bytes; vo.setCurrentPage(0); vo....

    把excel导入List中行也为list

    在Java编程中,将Excel数据导入到一个List中,其中每一行数据表示为一个List,是一种常见的数据处理需求。这种操作对于数据分析、数据存储或数据传输等场景非常实用。下面我们将详细讨论如何实现这个功能,以及涉及...

    java实现excel导入数据库

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

    java导入导出Excel工具类

    一个实用的java导入导出Excel工具类,基于开源的Java Excel API(JXL)纯java类库实现,Windows和Linux系统下均可使用。 主要实现功能如下: 导出:将List转化为Excel(listToExcel)。 导入:将Excel转化为List...

    java对Excel表格数据处理并以List集合返回(只要传Excel文件路径即可)

    java对Excel表格数据处理并以List集合返回(只要传Excel文件路径即可)

    java实现Excel导入导出

    Java 实现 Excel 导入导出是指使用 Java 语言编写程序来实现将 Excel 文件中的数据导入到 Java 程序中,并将 Java 程序中的数据导出到 Excel 文件中。这种操作可以使用 Apache POI 库来实现。 POI 库简介 Apache ...

    java_poi导入excel通用工具类

    这个"java_poi导入excel通用工具类"是利用Java的POI库和一些额外的技术来实现对Excel数据的导入功能,使得开发人员能够方便地将Excel数据转化为Java对象或者对已有对象进行填充。下面我们将深入探讨相关的知识点。 ...

    java大批量导入excel,多线程加分片处理的dome

    ### Java大批量导入Excel:多线程加分片处理详解 #### 概述 在实际工作中,经常需要批量处理大量的Excel数据。当面对成千上万甚至百万级别的数据时,简单的单线程处理方式往往无法满足效率的需求。为了解决这个...

    java导入Excel的数据的同时导入Excel里面的图片-测试demo.zip

    在Java编程中,处理Excel文件是一项常见的任务,特别是在数据导入和导出的场景下。...这个"java导入Excel的同时导入图片-测试demo"应该包含了一个完整的示例,演示了上述步骤,你可以根据这个示例代码进行学习和实践。

    Java解析Excel与导入Excel

    2. `List&lt;?&gt; importExcel(InputStream is, int sheetIndex, Class&lt;T&gt; clazz)`: 这个方法用于导入Excel,`is`是输入流,`sheetIndex`是工作表索引,`clazz`是你期望的数据类型。 在实际应用中,你还需要考虑一些特殊...

    JAVA中excel导入导出通用方法

    JAVA中excel导入导出通用方法 JAVA 中 excel 导入导出通用方法是指在 Java 项目中实现 excel 文件的导入和导出功能。这种方法可以应用于各种需要 excel 文件交互的业务场景中。 一、引入依赖 在 Java 项目中想要...

    java excel 读写 java excel 导入数据库

    - **数据预处理**:读取Excel数据到Java集合,如List, Object&gt;&gt;,每个Map代表一行记录,键为列名,值为列值。 - **建立数据库连接**:使用JDBC(Java Database Connectivity)建立到目标数据库的连接。 - **预...

    用Jxls实现数据导入excel实例

    本文将详细介绍如何使用Jxls实现数据导入Excel的实例。 Jxls库的核心功能在于提供了一种声明式的方式来处理Excel模板,通过使用Apache POI库来操作Excel文件。它的主要优点是将数据和样式分离,让开发者可以专注于...

    java 导出,导入excel

    java 导出,导入excel。用户自定义导出模板。模板显示内容用el表达式即可。用户可以定义每一个单元格的显示内容。可以自定义List数据的展示。一个excel的sheet内,可以有多个list的数据循环

    java 导入excel

    在Java编程环境中,导入Excel数据是一项常见的任务,特别是在数据分析、报表处理或系统集成等领域。Excel文件,特别是.xlsx格式(属于Microsoft Office Open XML标准)和.xls格式(属于旧版的BIFF格式),通常包含...

    java_poi导入 excel

    这篇博文链接虽然没有提供具体内容,但我们可以根据“java_poi导入excel”这个主题深入探讨Java POI库在Excel导入方面的应用。 首先,Java POI 提供了HSSF(用于老版本的BIFF格式,如.xls)和XSSF(用于新版本的...

    java-excel导入导出注解版内用教程说明

    2. **导入Excel** 创建一个`ExcelImporter`类,用于读取Excel并映射到实体对象: ```java public List&lt;Student&gt; importExcel(InputStream inputStream) { Workbook workbook = new SXSSFWorkbook(inputStream); /...

    springboot导入Excel文件并入库

    在Spring Boot应用中,导入Excel文件并将数据存储到数据库是一项常见的任务,特别是在处理批量数据时。下面我们将详细探讨如何在Spring Boot项目中实现这个功能,涉及的主要知识点包括Spring的文件上传、Excel数据...

    Java基于POI的导入导出excel功能,附带测试功能,项目基于Maven,导入即可用,带测试Main方法提供例子

    Java基于POI的导入导出excel功能,附带测试功能,项目基于Maven,导入即可用,带测试Main方法提供例子。 用于导入导出Excel的Util包,基于Java的POI。可将List导出成Excel,或读取Excel成List、Map,Object&gt;,很方便...

Global site tag (gtag.js) - Google Analytics