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);
}
}
分享到:
相关推荐
7. **代码示例**:在提供的"读取excel2007和2003兼容例子"中,应包含一个Factory类,如`WorkbookFactory`,它有一个静态方法`getWorkbook(String filePath)`。这个方法会检查文件扩展名,并返回相应的`Workbook`实例...
#### 标题:“poi读取excel” 该标题明确指出文章将讨论如何使用 Apache POI 库来读取 Excel 文件。这通常涉及到对 `.xls` 或 `.xlsx` 文件的读取操作,以便获取文件中的数据并进行进一步处理或分析。 #### 描述:...
通过循环读取Excel数据,然后使用SQL语句进行数据操作。例如,`connectDB()`建立数据库连接,`prepareInsertStatement()`准备插入语句,`executeBatch()`执行批量插入。 4. **框架集成** 在一个通用框架类库中,...
例如,它可能有一个方法用于读取Word文档,另一个方法专门处理Excel表格。 5. **FileRead方法**: "FileRead"方法可能是FR类中的一个重要方法,用于读取文件内容。它可能接受文件路径作为参数,然后使用...
java注解实现通用Excel中文表格转实体对象列表,支持中文表头,在Excel数据导入使用的...基于注解实现的支持中文表头的读取Excel数据并转换为实体对象列表的工具类,使用该工具类可将Excel数据转换成任意实体任意字段
在MFC(Microsoft Foundation Class)框架下开发C++应用程序时,有时我们需要与Excel进行交互,例如读取数据、写入数据或执行其他操作。本文将详细介绍如何在MFC项目中集成Excel9.olb库,实现对Excel文件的读取和...
ExcelOperate 类中包含了多个方法,包括创建 OLEDB 数据库连接、获取所有当前 Excel 工作表、导入 Excel 文件、导出 Excel 文件、生成模板文件等。 在 ExcelOperate 类中,我们首先需要创建一个 OLEDB 数据库连接,...
poi通过反射,泛型,注解来实现通用的poi导出导入公共类。
本教程将详细介绍如何利用Python编程语言实现将Excel文件转换为TXT文件的公共方法。 首先,我们需要了解Python中的两个关键库:`pandas`和`openpyxl`。`pandas`是一个强大的数据处理库,它可以方便地读取和写入各种...
本项目“安卓Android源码——安卓读取Excel文件获取表格数据”提供了一个示例,展示了如何在Android应用中实现这一功能。下面将详细探讨相关知识点。 1. **Excel文件格式** Excel文件通常以`.xls`或`.xlsx`为扩展...
1. **方法签名**:`public static DataTable GetTableBySheet(string path, string table)` 定义了一个静态公共方法,该方法接收两个参数:Excel文件路径 `path` 和要读取的Sheet名称 `table`。返回类型为 `...
这个方法可能作为示例代码,向开发者展示如何使用这个库来读取Excel数据。在实际开发中,能够导入Excel文件是数据处理的重要部分,它可以用于数据分析、报表生成或数据迁移等任务。 在压缩包中,有两个文件名:...
2. **创建类库**:创建一个新的C#类库项目,定义相关的公共类和方法,用于读写Excel文件。例如,可以创建一个名为`ExcelHelper`的类,包含`WriteToExcel`和`ReadFromExcel`等方法。 3. **实现读写操作**:在`...
读取Excel文件时,首先需要使用`Workbook.read(File file)`打开文件,然后通过`getSheet(int index)`获取工作表,再遍历行和单元格读取数据。 5. **公共类封装**: 在这个“jxl技术-excel操作公共类”中,很可能...
1. **导入Excel**:这通常涉及到读取Excel文件中的数据,如行、列和单元格,然后将数据转换为适合存储在数据库或其他数据结构的格式。Apache POI提供`Sheet`、`Row`和`Cell`接口,用于访问Excel文件的各个部分。 2....
### C#实现EXCEL文件读取的关键知识点 #### 一、理解Excel对象模型 在C#中处理Excel文件时,通常需要了解Excel的对象模型。这包括了多种对象,从简单的图形对象到复杂的透视表和图表。 1. **Application对象**: ...
1. **公共且无参的构造函数**:JavaBean应有一个无参数的构造函数,以便于实例化。 2. **属性**:JavaBean通常包含一组私有的成员变量,代表其状态或数据。 3. **getter和setter方法**:对于每个属性,JavaBean都有...
1. **ExcelUtils.java**:这是整个库的主入口点,提供了一系列静态方法,如读取Excel文件、写入Excel文件等。这些方法通常只需要简单的参数,如文件路径、工作表索引或标题,就能完成复杂的操作。 2. **Excel...
ExcelUtil 借助反射和 POI 对 Excel 读取,省略了以往读取 ...代码又臭又长不说,而且代码冗余很多,现在借助ExcelUtil这个公共类,可以实现优雅,容易的读取。兼容03,07版Excel。大家项目中直接引入maven就可以了。
例如,我们可以创建一个ExcelReader类来读取Excel文件: ```java import com.example.util.ExcelUtils; // 假设ExcelUtils是工具类库中的一个公共类 public class ExcelReader { public static void main(String...