当前位置: 首页 > news >正文

Java(119):ExcelUtil工具类(org.apache.poi读取和写入Excel)

ExcelUtil工具类(XSSFWorkbook读取和写入Excel),入参和出参都是:List<Map<String,Object>>

一、读取Excel

testdata.xlsx


1、new XSSFWorkbook对象

            File file = new File(filePath);
            FileInputStream fis = new FileInputStream(file);
            XSSFWorkbook wb = new XSSFWorkbook(fis);


2、new XSSFSheet对象

            //获取sheet第一个
            XSSFSheet xSheet = wb.getSheetAt(0);
            if(sheetName!=null) {
                //如果sheetName入参可用这个,通过名称获取
                xSheet = wb.getSheet(sheetName);
            }


3、遍历行读取数据写入List<Map<String,Object>>

          for (int i = 0; i <= xSheet.getLastRowNum(); i++) {  //遍历所有行
                if(i==0){  //标题行
                    for (int j = 0; j < xSheet.getRow(i).getPhysicalNumberOfCells(); j++) {
                        headMap.put(j, xSheet.getRow(i).getCell(j).toString());
                    }
                    continue;
                }
                Map<String, Object> paramsMap = new HashMap<>();
                for (int j = 0; j < xSheet.getRow(i).getPhysicalNumberOfCells(); j++) {  //遍历当前行所有列
                    String key=headMap.get(j);
                    Cell cell=xSheet.getRow(i).getCell(j);
                    switch (cell.getCellType()) {
                        case Cell.CELL_TYPE_STRING:
                            paramsMap.put(key,cell.getStringCellValue());
                            break;
                        case Cell.CELL_TYPE_NUMERIC:
                            paramsMap.put(key,new Double(cell.getNumericCellValue()).intValue());
                            b

相关文章:

  • okhttp导致的内存溢出(OOM)sun.security.ssl.SSLSocketImpl
  • 西南科技大学数字电子技术实验二(SSI逻辑器件设计组合逻辑电路及FPGA实现 )FPGA部分
  • day3 移出链表中值为x的节点
  • python每日一题——19螺旋矩阵
  • 【分布式事务】Seata 开源的分布式事务解决方案
  • Jmeter-分布式压测(远程启动服务器,windows)
  • WT2605-24SS录放音语音芯片:便捷按键功能提升用户体验
  • 2023年第十二届数学建模国际赛小美赛A题太阳黑子预测求解分析
  • 【区块链】产品经理的NFT初探
  • C#:程序发布的大小控制
  • 【AUTOSAR OS】如何处理高频高速任务的挑战?
  • Discuz论坛自动采集发布软件
  • SQL注入漏洞的检测及防御方法
  • Hdoop学习笔记(HDP)-Part.16 安装HBase
  • 一维和多维随机变量的高斯分布(正态分布)
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • E-HPC支持多队列管理和自动伸缩
  • Javascript设计模式学习之Observer(观察者)模式
  • Linux快速复制或删除大量小文件
  • Netty 4.1 源代码学习:线程模型
  • PHP的Ev教程三(Periodic watcher)
  • STAR法则
  • 测试如何在敏捷团队中工作?
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 一份游戏开发学习路线
  • #AngularJS#$sce.trustAsResourceUrl
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (02)vite环境变量配置
  • (1)虚拟机的安装与使用,linux系统安装
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (三)elasticsearch 源码之启动流程分析
  • (一)UDP基本编程步骤
  • (转)重识new
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .NET CLR基本术语
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET 读取 JSON格式的数据
  • .Net 知识杂记
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .net打印*三角形
  • .NET开发人员必知的八个网站
  • .NET轻量级ORM组件Dapper葵花宝典
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @Bean, @Component, @Configuration简析
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [2016.7 test.5] T1
  • [20170705]diff比较执行结果的内容.txt
  • [C# 基础知识系列]专题十六:Linq介绍