首页 > 编程语言 >Java POI 拆分excel单元格并填充内容

Java POI 拆分excel单元格并填充内容

时间:2023-04-13 19:36:33浏览次数:44  
标签:Java int 单元格 excel System merge println sheet out

public void test(Sheet sheet)  {
        int numMergedRegions = sheet.getNumMergedRegions();
        for(int z = 0; z < numMergedRegions; z++) {
            CellRangeAddress merge = sheet.getMergedRegion(z);
            //System.out.println("Number: " + z);
            //System.out.println("first column: " + merge.getFirstColumn() + " last column " + merge.getLastColumn());
            //System.out.println("first row: " + merge.getFirstRow() + " last row " + merge.getLastRow());
            //System.out.println("==============");
            int firstCol = merge.getFirstColumn();
            int lastCol = merge.getLastColumn();
            int firstRow = merge.getFirstRow();
            int lastRow = merge.getLastRow();
            Cell cell = null;
            for (int k = firstRow; k <= lastRow; k++) {
                for (int l = firstCol; l <= lastCol; l++) {
                    if (cell == null){//拿到第一个值就是合并单元格的值
                        cell = sheet.getRow(k).getCell(l);
                    }else {
                        Cell cell1 = sheet.getRow(k).getCell(l);
                        switch (cell.getCellType()) {
                            case NUMERIC:
                                if (DateUtil.isCellDateFormatted(cell)) { //判断是否为日期类型
                                    Date date = cell.getDateCellValue();
                                    DateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
                                    cell1.setCellValue(formater.format(date));
                                } else {
                                    DecimalFormat df = new DecimalFormat("####.####");
                                    cell1.setCellValue( df.format(cell.getNumericCellValue()));
                                }
                                break;
                            case STRING:
                                cell1.setCellValue(cell.getStringCellValue());
                                break;
                            case BOOLEAN:
                                cell1.setCellValue(cell.getBooleanCellValue() + "");
                                break;
                            case BLANK: //空值
                                cell1.setCellValue("");
                                break;
                            case ERROR:
                                cell1.setCellValue("非法字符");
                                break;
                        }
                    }
                }
            }
        }
    }

标签:Java,int,单元格,excel,System,merge,println,sheet,out
From: https://blog.51cto.com/u_12550930/6188306

相关文章

  • 【Java】wait、await、sleep的区别和联系
     (200条消息)Java之wait、await、sleep的区别和联系_javawait和await区别_wotu__的博客-CSDN博客 一、wait()notify()notifyAll()调用wait()使得线程等待某个条件满足,线程在等待时会被挂起,当其他线程运行时使得这个条件满足时,其他线程会调用notify()或者notifyAll()来唤......
  • Java | 一分钟掌握JDK命令行工具 | 2- 分类
     作者:Mars酱 声明:本文章由Mars酱编写,部分内容来源于网络,如有疑问请联系本人。 转载:欢迎转载,转载前先请联系我!JDK命令行工具分类命令行工具按照功能可以分为以下几个重要的大类:主要工具主要工具是用来完成主要工作的(废话),比如:编译、反编译、打包等等,以下是常见的:javac:您可以使用......
  • Java GC基础知识
    1对象存活判断1.1引用计数在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的引用计数法的缺陷:publicclassReferenceCountingGC{publicObjectinstance=null;priv......
  • Java基础
    cmd打开Java代码//代码编译javacHello.java//运行编译码javaHelloJDK、JRE和JVM的关系JDK=JRE+开发工具集(如Javac、java编译工具等)JRE=JVM+JavaSE标准类库只测试只需要JRE即可Java八大数据类型数据转换自动转换规则容量大的类型能......
  • Java 程序连接数据库服务端程序的助手类
    username=用户名password=密码jdbcURL=jdbc:mysql://IP地址:端口号/数据库名?useUnicode=true&useSSL=false&amp&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=truejdbcDriver=com.mysql.cj.jdbc.Driver import......
  • Javascript内置对象
    内置对象(常用方法)Math(不是构造函数,直接调用)/**@file封装自己的myMath对象@authorlxs/varmyMath={PI:3.1415926,/*@description求最小值@returns{Number}max@examplemax(3,5)//5/max:function(){varmax=arguments[0];for(vari=1;i<arg......
  • 【Java技术专题】「盲点追踪」突破知识盲点分析Java安全管理器(SecurityManager)
    前提介绍Java安全应该包括两方面的内容,一是Java平台(即是Java运行环境)的安全性;二是Java语言开发的应用程序的安全性。由于我们不是Java本身语言的制定开发者,所以第一个安全性不需要我们考虑。其中第二个安全性是我们重点考虑的问题,一般我们可以通过安全管理器机制来完善安全性,安全管......
  • Java项目开启JMX:Prometheus数据上报
    对于Java项目而言,开启JMX进行JVM监控是很有必要的,可以帮忙开发人员分析、定位问题常规开启JavaJMX方法一般可以在启动脚本中添加相关的参数-Dcom.sun.management.jmxremote.port=6543-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=......
  • Spring IOC容器注解大全—基于Java的容器配置
    本节介绍了如何在你的Java代码中使用注解来配置Spring容器。它包括以下主题。基本概念:@Bean 和 @Configuration通过使用 AnnotationConfigApplicationContext 实例化Spring容器使用 @Bean 注解使用 @Configuration 注解构建基于Java的配置Bean定义配置PropertySource 抽象......
  • 万字详解 | Java 流式编程
    概述StreamAPI是Java中引入的一种新的数据处理方法。它提供了一种高效且易于使用的方法来处理数据集合。StreamAPI支持函数式编程,可以让我们以简洁、优雅的方式进行数据操作,还有使用Stream的两大原因:在大多数情况下,将对象存储在集合中就是为了处理它们,因此你会发现你把编程......