今天在网上找了个java解析excel的代码,发现与项目不太符合,于是就改造了一下,可以分sheet页签来分页解析excel,感觉用处挺大的,分享给大家。
package com.hikvision.cms.modules.reverseconf.utils; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ReadExcel { public static Map<String,ArrayList<ArrayList<String>>> readExcel(String fileName, String path) { Map<String,ArrayList<ArrayList<String>>> map = new HashMap<String, ArrayList<ArrayList<String>>>(); try { Workbook workBook = null; try { workBook = new XSSFWorkbook(path + "\\" + fileName); } catch (Exception ex) { workBook = new HSSFWorkbook(new FileInputStream(path + "\\" + fileName)); } for (int numSheet = 0; numSheet < workBook.getNumberOfSheets(); numSheet++) { ArrayList<ArrayList<String>> Row = new ArrayList<ArrayList<String>>(); Sheet sheet = workBook.getSheetAt(numSheet); if (sheet == null) { continue; } // 循环行Row for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) { Row row = sheet.getRow(rowNum); if (row == null) { continue; } // 循环列Cell ArrayList<String> arrCell = new ArrayList<String>(); for (int cellNum = 0; cellNum < row.getLastCellNum(); cellNum++) { Cell cell = row.getCell(cellNum); if (cell == null) { cell = row.createCell(cellNum); cell.setCellValue(""); } arrCell.add(getValue(cell)); } Row.add(arrCell); } map.put(String.valueOf(numSheet), Row); } } catch (IOException e) { System.out.println("e:" + e); } return map; } @SuppressWarnings("static-access") private static String getValue(Cell cell) { if (cell.getCellType() == cell.CELL_TYPE_BOOLEAN) { return String.valueOf(cell.getBooleanCellValue()); } else if (cell.getCellType() == cell.CELL_TYPE_NUMERIC) { return String.valueOf(cell.getNumericCellValue()); } else { return String.valueOf(cell.getStringCellValue()); } } /** * 返回map * key:sheet页签 * value:List里面的String[]为一行的数据 * @param sheet * @return */ public static Map<String,List<String[]>> analysisExcel(String fileName, String path){ Map<String,ArrayList<ArrayList<String>>> sheet = readExcel(fileName, path); Map<String,List<String[]>> map = new HashMap<String, List<String[]>>(); for (int i=0;i<sheet.size();i++) { ArrayList<ArrayList<String>> row = sheet.get(String.valueOf(i)); List<String[]> list = new ArrayList<String[]>(); if(row.size()>0){ for(int j=0;j<row.size();j++){ ArrayList<String> cell = row.get(j); String[] c = new String[cell.size()]; for(int k=0;k<cell.size();k++){ c[k] = cell.get(k); } list.add(c); } } map.put(String.valueOf(i), list); } return map; } public static void main(String[] args) { Map<String,List<String[]>> list = analysisExcel("TEST1.xls", "D:\\Program Files\\Java"); for(int i=0;i<list.size();i++){ List<String[]> l = list.get("0"); System.out.println(l); } } }
相关推荐
Java导出数据到Excel文件中,支持多页签形式,如通过Java导出一个名为“各部门人员列表”,然后在文件中有三个页签,分别为“研发部”、“综合部”、“财务部”。其中这三个页签里面的数据就是通过Java导出到Excel...
在Java开发中,上传并解析Excel文件是一种常见的需求,特别是在数据处理、报表导入或系统集成等场景。本篇文章将深入探讨如何实现这个功能,主要涉及的技术包括文件上传、Excel解析以及数据库操作。 首先,我们需要...
在Java编程环境中,解析Excel文件是一项常见的任务,特别是在数据处理、数据分析或自动化测试等领域。Eclipse作为Java开发的主流IDE,提供了丰富的工具和支持来完成这项工作。本项目名为"java 解析Excel 并判断解析...
在Java编程中,解析Excel文件是一项常见的任务,尤其在数据处理、数据分析或报表生成等场景中。本实例将深入探讨如何使用Java来读取和解析Excel文件,主要涉及的工具有Apache POI库,它是一个强大的API,允许我们与...
java读取Excel文件中多个sheet,生成xml格式的文件
3. **获取 Sheet 对象**:通过工作簿对象的 `getSheet()` 方法获取工作表,工作表代表 Excel 文件中的一页。 4. **遍历 Row 和 Cell**:通过工作表对象的 `iterator()` 获取所有行,再遍历每一行的 `Cell`,读取...
总结,Apache POI 3.8提供了一个强大的工具集,允许开发者在Java环境中方便地读取和解析Excel文件,无论是老版的.xls还是新版的.xlsx。通过理解其核心组件和API,你可以有效地操作Excel数据,进行数据分析、数据导入...
本节详细介绍了如何使用Java解析EXCEL文件,包括文件的上传、读取、设置以及工作表的处理等关键步骤。这些知识点对于开发人员来说是非常实用的,尤其在处理大量Excel数据时更是必不可少的技术。通过上述代码示例,你...
在这个"poi 解析excel文件内容demo"中,我们主要关注如何使用Apache POI库来读取和解析Excel文件,无论它们是2003版的.XLS还是2007以后的.XLSX格式。 首先,Apache POI提供了两种主要的接口来处理Excel文件:HSSF...
Java解析Excel文件主要依赖于Apache POI库,这是一个开源项目,专门为处理Microsoft Office格式的文件而设计。在Java中,Apache POI提供了丰富的API,使得开发者可以方便地读取、写入Excel(.xls和.xlsx)文件。在这...
总结来说,"java解析excel表格"的实例是基于Apache POI库实现的,它展示了如何在Java环境中读取、处理和输出Excel文件的内容。这对于需要处理Excel数据的Java开发者来说是一个基础且实用的教程。通过深入学习和实践...
在Java编程环境中,解析Excel文件是一项常见的任务,无论是处理数据导入导出,还是进行数据分析,都需要用到这个功能。本文将详细讲解如何使用Java来解析2003和2007版本的Excel文件(包括.xls和.xlsx格式)。 Excel...
用poi读取excel多个sheet内容,用流的方式判断excel的版本,2003,还是2007版本,并附带所需jar包,文件下载后解压,直接导入eclipse中即可使用
在Android平台上,解析Excel文件是一项常见的任务,尤其在数据处理、报表展示或者用户交互中。本文将详细讲解如何在Android应用中实现Excel文件的解析,主要聚焦于使用JXL库进行处理。 首先,JXL是一个Java库,专门...
Java解析Excel文件是Java开发中常见的任务,尤其在数据处理、报表生成或数据分析等领域。Excel文件通常使用两种主要格式:老式的`.xls`(BIFF8格式)和较新的`.xlsx`(OOXML格式)。本示例关注的是`.xls`格式,因为...
在处理大数据量的Excel文件时,Java是一种常用的语言,因为它提供了强大的库,如Apache POI,使得解析大型Excel文件成为可能。Apache POI是Java的一个开源项目,专门用于读写Microsoft Office格式的文件,包括Excel...
在Java编程中,解析Excel文件是一项常见的任务,特别是在数据处理、报表生成或数据分析等领域。Excel文件格式主要有两种:老式的`.xls`(基于BIFF格式)和较新的`.xlsx`(基于Open XML标准)。本篇将详细介绍如何...
标题提到的"java调用vbs获取获取excel各sheet页打印总数"就是一个这样的解决方案。VBScript是Windows操作系统内置的一种脚本语言,能够与Office应用程序交互,包括Excel。通过VBScript,我们可以直接操作Excel对象...
在Android平台上,解析Excel文件是一项常见的任务,尤其在数据处理、报表展示或者用户交互中。本文将深入探讨如何在Android应用中实现Excel文件的解析,主要聚焦于从资源文件中读取Excel数据。 首先,我们需要了解...
### Java处理100万行超大Excel文件秒级响应 #### 一、问题背景与需求分析 在项目开发过程中,经常会遇到需要处理大量Excel数据的情况。这些数据可能包括成千上万条记录,每条记录又包含多个字段。传统的处理方式...