- 浏览: 50332 次
- 性别:
- 来自: 南京
文章分类
最新评论
#调用
#excel处理工具类
#注解类
#model
List<ModelTest> list = readExcelForList(inputStream, fileName, ModelTest.class);
#excel处理工具类
public class TestUtil { ......... public <T> List<T> readExcelForList(InputStream input, String fileName, Class<T> cls) { List<T> dataList = new ArrayList<T>(); //InputStream input = null; try { //input = new FileInputStream(filePath); Workbook wb = null; if (fileName.endsWith(".xls")) { wb = new HSSFWorkbook(input); } else { wb = new XSSFWorkbook(input); } Sheet sheet = wb.getSheetAt(0); // 读取表头 Row row = sheet.getRow(0); String[] titles = new String[]{"数据来源"}; int rowIndex = 1; int rowNum= sheet.getLastRowNum(); for (int i = 1; i < rowNum + 1; i++) { dataList.add((T) getRowValueTemplate(sheet, i, titles, AssetsMutiltm.class)); } } catch (Exception e) { e.printStackTrace(); } finally { try { input.close(); } catch (IOException e) { e.printStackTrace(); } } return dataList; } static DataFormatter formatter = new DataFormatter(); private <T> T getRowValueTemplate(Sheet sheet, int rowIndex, String[] columnArr, Class<T> cls) { Row row = sheet.getRow(rowIndex); T t = null; try { t = cls.newInstance(); } catch (InstantiationException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } Method[] methods = cls.getMethods(); for (Method m : methods) { ExcelAnnotationForMethod an = m.getAnnotation(ExcelAnnotationForMethod.class); if (null != an) { for (int i = 0; i < columnArr.length; i++) { if (an.columnName().equals(columnArr[i])) { String type = an.type(); Cell cell = row.getCell(i); if (null == cell) { cell = row.createCell(i); } try { if ("string".equals(type)) { m.invoke(t, formatter.formatCellValue(cell)); } else if ("date".equals(type)) { int cellType = cell.getCellType(); if (cellType == Cell.CELL_TYPE_STRING) { String value = cell.toString().trim(); m.invoke(t, (Object) null); } else if (cellType == Cell.CELL_TYPE_NUMERIC) { Date date = cell.getDateCellValue(); m.invoke(t, date); } } else if ("int".equals(type)) { m.invoke(t, formatter.formatCellValue(cell)); } else { m.invoke(t, getCellValueTemplate(row, i)); } } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } } } return t; } private Object getCellValueTemplate(Row row, int col) { if (row == null) { return ""; } Cell cell = row.getCell(col); return getCellValueTemplate(cell); } private Object getCellValueTemplate(Cell cell) { if (cell == null) { return ""; }else{ Date date = null; String value = ""; if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC) { if(DateUtil.isCellDateFormatted(cell)){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); date = cell.getDateCellValue(); if (null != date) { value = sdf.format(date); } return date; } else { value = formatter.formatCellValue(cell); } } else if (cell.getCellType() == Cell.CELL_TYPE_FORMULA) { value = formatter.formatCellValue(cell); } else { value = cell.toString().trim(); } try { // This step is used to prevent Integer string being output with // '.0'. Float.parseFloat(value); value=value.replaceAll("\\.0$", ""); value=value.replaceAll("\\.0+$", ""); return value; } catch (NumberFormatException ex) { return value; } } } ......... }
#注解类
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface ExcelAnnotationForMethod { String columnName (); String type() default "string"; }
#model
public class ModelTest{ private Long id; private String source; private int rowIndex; public Long getId( ){ return id; } public void setId(Long id){ this.id=id; } public String getSource( ){ return source; } @ExcelAnnotationForMethod(columnName="数据来源") public void setSource(String source){ this.source=source; } public int getRowIndex() { return rowIndex; } public void setRowIndex(int rowIndex) { this.rowIndex = rowIndex; } }
发表评论
-
itext生成pdf
2019-08-09 14:23 369package pdf; import java ... -
微服务系统设计(元素)
2019-01-24 23:06 446以springboot框架来设计一个微服务系统,可以利用现有的 ... -
String与Long类型比较的陷阱
2018-06-06 11:30 1108public class LongTest { publi ... -
poi设置下拉框
2018-01-05 17:05 18631.下拉框数据较少时 String[] strs = new ... -
poi之getPhysicalNumberOfCells与getLastCellNum
2017-12-18 17:27 1457某次调用row.getPhysicalNumberOfCell ... -
javascript校验信息
2017-11-13 20:16 01.校验手机号 var pattern = /^1[34578 ... -
下载poi生成的excel
2017-10-18 09:28 544#xls格式 // 下载wb String fileNa ... -
弹窗列表操作-javascript
2017-08-30 18:36 786<html> <head> & ... -
jquery操作table添加行
2017-02-13 18:47 819chrome可以直接测试运行 <html ... -
java后台判断浏览器属性
2017-01-25 15:51 0import java.util.regex.Matcher; ... -
前台异步交互示例
2017-01-25 15:48 0/** * <b>功能:</b>输 ...
相关推荐
### JS读取解析Excel知识点详解 #### 一、前言 在现代Web开发中,处理文件上传和数据解析是常见的需求之一,尤其是对于Excel文件的处理。JavaScript(JS)作为前端开发的主要语言,通过特定的技术手段,能够实现对...
用于php读取解析excel文件,用来操作Office Excel 文档的一个PHP类库,它基于微软的Openxml标准和PHP语言。可以使用它来读取、写入不同格式的电子表格。整体来说是一个不错的Excel操作类。
本篇文章介绍了一个方法,该方法能够读取Excel文件并将其中的数据存储到Java中的`Map`集合里,便于后续进行数据分析或处理。 #### 方法概述 方法签名如下: ```java public Map, Map, String>> importReportExcel...
总结来说,纯前端读取和解析Excel文件涉及到JavaScript的文件操作、浏览器API的使用以及第三方库的选择。对于IE浏览器,可以使用ActiveX对象,但不推荐,因为这种方法限制较多。对于其他现代浏览器,使用如`excel...
本文将深入探讨如何使用JavaScript在浏览器端解析和读取Excel文件,主要基于开源库`js-xlsx`。 `js-xlsx`是一个强大的JavaScript库,专门用于解析和操作Excel文件(.xlsx和.xls格式)。它支持读取二进制文件、Base...
在Java编程环境中,处理Excel文件是一项常见的任务,特别是在数据导入导出、数据分析或者报表生成时。JXL库是一个广泛使用的开源库,它允许...结合上述步骤,你可以在Java项目中实现一个完整的Excel固定模板解析功能。
在***中使用NPOI读取Excel模板并导出下载的详细过程涉及到多个知识点,包括对NPOI库的理解、Excel文件的读写操作、以及*** Web应用程序中的文件处理。下面将详细介绍这些内容。 ### 1. NPOI库简介 NPOI是一个开源的...
Java 通过反射将 Excel 解析成对象集合实例 Java 通过反射将 Excel 解析成对象集合实例是指使用 Java 语言通过反射机制将 Excel 文件中的数据解析成对象集合实例。这种方法非常实用,能够将 Excel 文件中的数据快速...
1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....
接下来,我们可以创建一个名为`ExcelUtils`的工具类,其中包含两个主要方法:`readTemplate`用于读取Excel模板,`writeData`用于将数据写入到模板中。这里我们假设模板中的某些单元格被标记为数据占位符,这些占位符...
标题中的“poi包 EXCEL模板读取填数据并导出以及在模板某行插入新的行”涉及到了Apache POI库的使用,这是一个Java API,专门用于处理Microsoft Office格式的文件,如Excel。以下是对这个主题的详细解释: Apache ...
这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL查看数据库 在MYSQL中运行项目db目录下的sql文件,创建...
在这个"NPOI批量读取excel文件内容写入excel模板.rar"压缩包中,包含的资源可以帮助我们理解如何利用NPOI来批量处理Excel数据,并将读取到的信息填入预设的Excel模板中。这里我们将详细探讨NPOI的使用方法、批量读取...
### POI Excel 模板读取并导出带公式的Excel文档 #### 一、概述 在实际工作中,经常需要批量处理数据,并将其导出到Excel文件中,特别是在需要复杂计算的情况下,例如工资单、统计数据汇总等场景。利用Apache POI...
本篇将详细介绍如何使用Apache POI来读取Excel模板,复制工作表(Sheet)以及复制行,并特别关注如何处理合并单元格的情况。 首先,我们需要引入Apache POI的相关依赖库到我们的项目中。在Maven项目中,可以在pom....
在IT行业中,尤其是在数据处理和应用开发领域...通过以上方法,你可以在Java和Android环境中有效地解析和读取Excel文件,满足数据处理的需求。无论是简单的数据展示还是复杂的业务逻辑,都能游刃有余地处理Excel数据。
##### 2.1 使用ActiveXObject读取Excel文件 在IE浏览器环境下,可以通过`ActiveXObject`对象来操作Office应用程序,例如Excel。这种方式适用于客户端环境,并且要求用户的浏览器支持ActiveX控件。 ##### 2.2 代码...
Excel文件通常用于存储和处理结构化的表格数据,而“读取Excel文件到高级表格”则是将Excel中的数据导入到易语言的高级表格组件中,便于进一步的处理和显示。 首先,我们需要理解易语言中的高级表格组件。这是一个...
1. **读取Excel模板** - **打开模板文件**:使用`WorkbookFactory.create()`方法,传入模板文件的路径,可以创建一个Workbook对象,它是Excel文件的抽象表示。 - **获取Sheet对象**:Workbook对象包含了多个Sheet...
Excel 读取 读取Excel到Dataset中