/**
* 资料导入方法
* @param filePath 资料文件路径
* @return 资料信息
*/
public List<Map<String, String>> infomationImport(String filePath) {
//存储 资料集合
List<Map<String, String>> infomationList = new ArrayList<Map<String,String>>();
try{
//创建文件输入流
FileInputStream is= new FileInputStream(new File(filePath));
HSSFWorkbook workbook = new HSSFWorkbook(is); //创建对Excel工作簿文件的引用
/**
* 循环sheet页
*/
for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {
if (null != workbook.getSheetAt(numSheets)) {
HSSFSheet sheet = workbook.getSheetAt(numSheets); //获得一个sheet
/**
* 循环sheet页所有行
*/
for (int rowNumOfSheet = 1; rowNumOfSheet <= sheet.getLastRowNum(); rowNumOfSheet++) {
//存储每一行的资料
Map<String,String> map = new HashMap<String,String>();
if (null != sheet.getRow(rowNumOfSheet)) {
//获得一行
HSSFRow row = sheet.getRow(rowNumOfSheet);
/**
* 循环每一行的所有列
*/
for (short cellNumOfRow = 0; cellNumOfRow <= row.getLastCellNum(); cellNumOfRow++) {
if (null != row.getCell(cellNumOfRow)) {
//获得列值
HSSFCell cell = row.getCell(cellNumOfRow);
//数字类型
if(cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){
NumberFormat fomatter = new DecimalFormat();
String[] dataList=fomatter.format(Double.parseDouble(String.valueOf(cell.getNumericCellValue()))).split(Constants.CONSTANT_DATA_SEPARATOR);
StringBuffer sb=new StringBuffer();
for (int i = 0; i < dataList.length; i++) {
sb.append(dataList[i]);
}
map.put(sheet.getRow(0).getCell(cellNumOfRow).getStringCellValue(), sb.toString());
}else if(cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN){
map.put(sheet.getRow(0).getCell(cellNumOfRow).getStringCellValue(), String.valueOf(cell.getBooleanCellValue()));
}else {
map.put(sheet.getRow(0).getCell(cellNumOfRow).getStringCellValue(),cell.getStringCellValue());
}
}
}
}
infomationList.add(map);
}
}
}
}catch(FileNotFoundException e){
e.printStackTrace();
}
catch(IOException ioexception){
ioexception.printStackTrace();
}
return infomationList;
}
分享到:
相关推荐
Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出
Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...
这个"java_poi导入excel通用工具类"是利用Java的POI库和一些额外的技术来实现对Excel数据的导入功能,使得开发人员能够方便地将Excel数据转化为Java对象或者对已有对象进行填充。下面我们将深入探讨相关的知识点。 ...
总之,Apache POI 是Java开发人员处理Excel文件的强大工具,无论是导入数据进行分析,还是导出数据生成报告,都能轻松应对。通过熟悉其API,你可以构建出复杂的Excel处理功能,满足各种业务需求。
"java_poi导入excel通用工具类V0915" 提供了一种通用的方式来处理Excel数据的导入工作,它支持多种赋值方式,包括单个对象、列表对象以及指定坐标的赋值。 首先,让我们深入理解一下这个工具类的主要功能: 1. **...
在提供的“java-excel导入导出”压缩包中,可能包含了示例代码、说明文档以及测试数据,可以帮助初学者快速理解和使用Java POI进行Excel操作。通过学习和实践这些示例,你可以掌握Java POI库的基本用法,并能灵活...
总结来说,这个项目展示了如何利用Java的Apache POI库读取Excel数据,结合XML解析进行数据验证,最后将验证通过的数据导入到数据库。这个过程涉及到文件I/O、XML处理、数据验证、数据库操作等多个核心Java技术,对于...
Java中的Apache POI库是处理...以上是Java POI操作Excel的基本概念和关键点,理解并熟练运用这些知识点,你就可以在项目中高效地进行批量导入导出操作了。记住,持续学习和适应新的库版本是保持技术领先的关键。
标题提到的“POI导入excel大数据处理”是指利用Apache POI进行大量Excel数据的导入操作,同时它兼容Excel 2003(.xls格式)和2007以上版本(.xlsx格式)的文件。 POI库的主要优点包括: 1. **多格式支持**:不仅...
前几天项目上需要加上导入导出,在网上找了一下,么有...于是自己写,源码里所需要的jar都有,从jsp界面进行Excel的导入导出,并可用于上传和下载。如有所用,喜不自禁,分享,开源的意义。 写的不是特别好,不喜勿喷!
概述:Java poi导入导出EXCEL工具类(兼容各版本) 一、功能说明 允许同时导入或导出多个sheet,同一sheet可同时存在多个数据块,按数据块划分处理数据。 二、配置文件示例及详细说明 1、导入xml配置示例如下(见...
Java中的Apache POI库是用于读取和...通过以上策略,可以有效地处理Java POI在导入大数据量Excel时的内存溢出问题,同时提高程序的运行效率。在实践中,应根据具体场景选择合适的优化方法,确保程序的稳定性和性能。
Apache POI是一个强大的库,它允许开发者使用Java来读取、写入和修改Microsoft Office格式的文件,包括Excel(.xlsx, .xls)。本项目通过Apache POI实现了Excel的导入与导出功能,并在操作过程中加入了进度条展示,...
Excel导入通常用于将用户上传的Excel文件中的数据读取到系统中。关键步骤如下: - 文件上传:使用Servlet或类似库处理用户上传的Excel文件,将其保存到服务器的某个位置。 - 读取文件:创建`Workbook`对象,传入...
**六、Excel导入的优化** 1. **内存管理**:大量数据可能导致内存溢出,可以考虑分批读取或使用SXSSF(一个内存效率更高的API)。 2. **错误处理**:在处理Excel数据时,可能遇到格式错误、空值等问题,需要设置...
这篇博文链接虽然没有提供具体内容,但我们可以根据“java_poi导入excel”这个主题深入探讨Java POI库在Excel导入方面的应用。 首先,Java POI 提供了HSSF(用于老版本的BIFF格式,如.xls)和XSSF(用于新版本的...
在"Java操作Excel之Poi模板导入导出"这个主题中,我们将深入探讨如何使用POI库来处理Excel模板,并进行数据的导入和导出。 首先,了解Excel模板的基本概念。模板通常包含预定义的样式、格式和计算,开发人员可以...
本示例将详细讲解如何使用Java和Apache POI库进行Excel的导入与导出操作。 首先,你需要在项目中引入Apache POI的Jar包。在提供的压缩包中,应该包含了用于此目的的POI库。确保将这些库添加到你的项目类路径中,...