`

读取EXCEL的公共方法

阅读更多
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.io.IOUtils;
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.ss.usermodel.WorkbookFactory;

public class ExcelParse {
    /**
     * 
     * 解析EXCEL得到数据列表 <br>
     * 〈功能详细描述〉
     * 
     * @param excelFilePath:EXCEL文件路径
     * @param columnNames:EXCEL中的一行中的字段名数组
     * @param sheetIndex:读取第几个sheet页
     * @param startRow:从第几行开始读
     * @param maxRow:最大读取多少行
     * @return 数据列表
     * @throws Exception
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public static List<Map<String, Object>> parse(String excelFilePath, String[] columnNames, int sheetIndex,
            int startRow, int maxRow) {
        FileInputStream is = null;
        // 读取到的EXCEL数据列表
        List<Map<String, Object>> excelDataList = new ArrayList<Map<String, Object>>();

        try {
            is = new FileInputStream(excelFilePath);
            // 获取EXCEL工作簿
            Workbook workbook = WorkbookFactory.create(is);
            // 获取第几个sheetIndex页
            Sheet sheet = workbook.getSheetAt(sheetIndex);

            // 获取EXCEL中的行数
            int rowNumber = sheet.getPhysicalNumberOfRows();
            // 超过指定行
            if (rowNumber > maxRow) {
                return null;
            }

            // 遍历EXCEL取出每一行的数据
            for (int i = startRow - 1; i < rowNumber; i++) {
                Map<String, Object> lineMap = new HashMap<String, Object>();
                // 获取EXCEL中的行
                Row row = sheet.getRow(i);

                // 遍历每一列的数据
                for (int j = 0; j < columnNames.length; j++) {

                    // 获取该行对应的列(即每个单元格的值 )
                    Cell cell = row.getCell(j);
                    String value = cell.getStringCellValue();

                    // 数据行
                    lineMap.put(columnNames[j], value);
                }

                excelDataList.add(lineMap);
            }

        } catch (Exception e) {
            // 日志
        } finally {
            IOUtils.closeQuietly(is);
        }
        return excelDataList;
    }

    /**
     * 
     * 默认读取第一个sheet页,从第3行开始读取,最多读取1000行 <br>
     * 〈功能详细描述〉
     * 
     * @param excelFilePath:EXCEL文件路径
     * @param columnNames:EXCEL中的一行中的字段名数组
     * @return
     * @throws Exception
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public static List<Map<String, Object>> parse(String excelFilePath, String[] columnNames) throws Exception {
        return parse(excelFilePath, columnNames, 0, 3, 1000);
    }

    public static void main(String[] args) throws Exception {
        String[] columnNames = { "a", "b", "c" };
        List<Map<String, Object>> excelDataList = parse("D:/excel.xls", columnNames);
        System.out.println(excelDataList);
    }
}

分享到:
评论

相关推荐

    poi读取excel2007和2003兼容工具例子

    7. **代码示例**:在提供的"读取excel2007和2003兼容例子"中,应包含一个Factory类,如`WorkbookFactory`,它有一个静态方法`getWorkbook(String filePath)`。这个方法会检查文件扩展名,并返回相应的`Workbook`实例...

    poi读取excel

    #### 标题:“poi读取excel” 该标题明确指出文章将讨论如何使用 Apache POI 库来读取 Excel 文件。这通常涉及到对 `.xls` 或 `.xlsx` 文件的读取操作,以便获取文件中的数据并进行进一步处理或分析。 #### 描述:...

    Classes_phpexcel公共方法类库_

    通过循环读取Excel数据,然后使用SQL语句进行数据操作。例如,`connectDB()`建立数据库连接,`prepareInsertStatement()`准备插入语句,`executeBatch()`执行批量插入。 4. **框架集成** 在一个通用框架类库中,...

    android 读取word、excel等文件(文件内容不太全,只为借鉴即可)

    例如,它可能有一个方法用于读取Word文档,另一个方法专门处理Excel表格。 5. **FileRead方法**: "FileRead"方法可能是FR类中的一个重要方法,用于读取文件内容。它可能接受文件路径作为参数,然后使用...

    java注解实现通用Excel中文表格转实体对象列表,支持中文表头,Excel批量导入,excel转实体对象,excel读取

    java注解实现通用Excel中文表格转实体对象列表,支持中文表头,在Excel数据导入使用的...基于注解实现的支持中文表头的读取Excel数据并转换为实体对象列表的工具类,使用该工具类可将Excel数据转换成任意实体任意字段

    利用MFC读取Excel文件,并对获得Excel文件进行存取操作

    在MFC(Microsoft Foundation Class)框架下开发C++应用程序时,有时我们需要与Excel进行交互,例如读取数据、写入数据或执行其他操作。本文将详细介绍如何在MFC项目中集成Excel9.olb库,实现对Excel文件的读取和...

    Excel导入,导出,模板生成-公共模块整理

    ExcelOperate 类中包含了多个方法,包括创建 OLEDB 数据库连接、获取所有当前 Excel 工作表、导入 Excel 文件、导出 Excel 文件、生成模板文件等。 在 ExcelOperate 类中,我们首先需要创建一个 OLEDB 数据库连接,...

    poi读取excel及通过反射和注解来提取excel导出导入通用工具类.md

    poi通过反射,泛型,注解来实现通用的poi导出导入公共类。

    Python实现将excel转换为txt公共方法.rar

    本教程将详细介绍如何利用Python编程语言实现将Excel文件转换为TXT文件的公共方法。 首先,我们需要了解Python中的两个关键库:`pandas`和`openpyxl`。`pandas`是一个强大的数据处理库,它可以方便地读取和写入各种...

    安卓Android源码——安卓读取Excel文件获取表格数据.zip

    本项目“安卓Android源码——安卓读取Excel文件获取表格数据”提供了一个示例,展示了如何在Android应用中实现这一功能。下面将详细探讨相关知识点。 1. **Excel文件格式** Excel文件通常以`.xls`或`.xlsx`为扩展...

    读取Excel文件

    1. **方法签名**:`public static DataTable GetTableBySheet(string path, string table)` 定义了一个静态公共方法,该方法接收两个参数:Excel文件路径 `path` 和要读取的Sheet名称 `table`。返回类型为 `...

    excelUtils公共导出支持xls与xlsx

    这个方法可能作为示例代码,向开发者展示如何使用这个库来读取Excel数据。在实际开发中,能够导入Excel文件是数据处理的重要部分,它可以用于数据分析、报表生成或数据迁移等任务。 在压缩包中,有两个文件名:...

    Labview读写Excel,使用C#封装NPOI

    2. **创建类库**:创建一个新的C#类库项目,定义相关的公共类和方法,用于读写Excel文件。例如,可以创建一个名为`ExcelHelper`的类,包含`WriteToExcel`和`ReadFromExcel`等方法。 3. **实现读写操作**:在`...

    jxl技术-excel操作公共类

    读取Excel文件时,首先需要使用`Workbook.read(File file)`打开文件,然后通过`getSheet(int index)`获取工作表,再遍历行和单元格读取数据。 5. **公共类封装**: 在这个“jxl技术-excel操作公共类”中,很可能...

    springboot 抽取的一个公用的excel帮助工程

    1. **导入Excel**:这通常涉及到读取Excel文件中的数据,如行、列和单元格,然后将数据转换为适合存储在数据库或其他数据结构的格式。Apache POI提供`Sheet`、`Row`和`Cell`接口,用于访问Excel文件的各个部分。 2....

    C#实现EXCEL文件读取.doc

    ### C#实现EXCEL文件读取的关键知识点 #### 一、理解Excel对象模型 在C#中处理Excel文件时,通常需要了解Excel的对象模型。这包括了多种对象,从简单的图形对象到复杂的透视表和图表。 1. **Application对象**: ...

    vba excel自动生成javabean格式的txt

    1. **公共且无参的构造函数**:JavaBean应有一个无参数的构造函数,以便于实例化。 2. **属性**:JavaBean通常包含一组私有的成员变量,代表其状态或数据。 3. **getter和setter方法**:对于每个属性,JavaBean都有...

    ExcelUtils.zip

    1. **ExcelUtils.java**:这是整个库的主入口点,提供了一系列静态方法,如读取Excel文件、写入Excel文件等。这些方法通常只需要简单的参数,如文件路径、工作表索引或标题,就能完成复杂的操作。 2. **Excel...

    ExcelUtil便捷读取工具-其他

    ExcelUtil 借助反射和 POI 对 Excel 读取,省略了以往读取 ...代码又臭又长不说,而且代码冗余很多,现在借助ExcelUtil这个公共类,可以实现优雅,容易的读取。兼容03,07版Excel。大家项目中直接引入maven就可以了。

    excel工具类jar包

    例如,我们可以创建一个ExcelReader类来读取Excel文件: ```java import com.example.util.ExcelUtils; // 假设ExcelUtils是工具类库中的一个公共类 public class ExcelReader { public static void main(String...

Global site tag (gtag.js) - Google Analytics