Java读取Excel到Map集合方法详解
4星 · 超过85%的资源 需积分: 50 109 浏览量
更新于2024-09-16
收藏 2KB TXT 举报
"该代码示例提供了一个方法,用于读取Excel文件并将数据存储到一个由整数键映射到另一个整数到字符串映射的Map集合中。它使用Apache POI库处理Excel文件,根据单元格类型解析数据,并将其放入结果Map中。"
在Java开发中,有时我们需要处理Excel文件并从中提取数据。Apache POI是一个流行的开源库,专门用于读写Microsoft Office格式的文件,包括Excel。在这个给定的代码段中,我们看到如何使用POI库来实现一个功能,即读取Excel文件并将数据存储到Map集合中。
首先,定义了一个方法`importReportExcel`,它接受两个参数:一个是Excel模板路径(`excelTemplatePath`),另一个是索引(`index`),用于获取工作表。这个方法返回一个`Map<Integer, Map<Integer, String>>`,其中外层的Map的键是行号,值是内层的Map,内层Map的键是列号,值是单元格的文本内容。
在方法内部,创建了一个新的File对象以代表Excel文件,然后使用`HSSFWorkbook`实例来打开它。`HSSFWorkbook`是Apache POI库中用于处理老版Excel文件(.xls)的类。通过`FileInputStream`从文件中读取数据。
接着,使用`workbook.getSheetAt(index)`获取指定索引的工作表。对于工作表中的每一行(`Row`),都会创建一个新的`Map<Integer, String>`(`mapColumn`),用于存储当前行的列数据。对于每一行中的每一个单元格(`Cell`),会检查其类型(`getCellType()`),并根据类型转换其内容。
这里使用了`switch`语句来处理不同类型的单元格:
- `CELL_TYPE_BLANK`表示单元格为空,内容设为""。
- `CELL_TYPE_BOOLEAN`表示单元格包含布尔值,内容转为字符串。
- `CELL_TYPE_ERROR`表示单元格包含错误,内容是错误代码的字符串形式。
- `CELL_TYPE_FORMULA`表示单元格包含公式,内容是公式本身。
- `CELL_TYPE_NUMERIC`表示单元格包含数字。这里还特别处理了日期格式的单元格,如果单元格被格式化为日期,就使用`HSSFDateUtil.isCellDateFormatted()`进行检查,并使用`DataFormatter`将日期值转换为"yyyy-mm-dd"格式的字符串。
最后,将处理过的单元格内容添加到`mapColumn`,然后将`mapColumn`添加到`mapRow`,表示完成了这一行的数据收集。当所有行都被处理后,整个方法返回`mapRow`,其中包含了Excel文件中所有数据的映射。
这段代码展示了如何利用Apache POI库高效地读取Excel文件并以结构化的形式存储数据,这对于数据分析、报告生成或其他需要处理Excel数据的场景非常有用。
2019-02-14 上传
2017-12-04 上传
2017-12-07 上传
786 浏览量
346 浏览量
554 浏览量
点击了解资源详情
liuxiangkui5
- 粉丝: 0
- 资源: 7
最新资源
- 全国江河水系图层shp文件包下载
- 点云二值化测试数据集的详细解读
- JDiskCat:跨平台开源磁盘目录工具
- 加密FS模块:实现动态文件加密的Node.js包
- 宠物小精灵记忆配对游戏:强化你的命名记忆
- React入门教程:创建React应用与脚本使用指南
- Linux和Unix文件标记解决方案:贝岭的matlab代码
- Unity射击游戏UI套件:支持C#与多种屏幕布局
- MapboxGL Draw自定义模式:高效切割多边形方法
- C语言课程设计:计算机程序编辑语言的应用与优势
- 吴恩达课程手写实现Python优化器和网络模型
- PFT_2019项目:ft_printf测试器的新版测试规范
- MySQL数据库备份Shell脚本使用指南
- Ohbug扩展实现屏幕录像功能
- Ember CLI 插件:ember-cli-i18n-lazy-lookup 实现高效国际化
- Wireshark网络调试工具:中文支持的网口发包与分析