首页 > 编程语言 >如何通过Java应用程序合并和取消合并 Excel 单元格

如何通过Java应用程序合并和取消合并 Excel 单元格

时间:2022-11-23 09:56:54浏览次数:64  
标签:getRange Java get 单元格 合并 Workbook sheet

在整理 Excel 中的数据时,我们不可避免地需要合并和取消合并单元格。 同时,如果需要创建跨列或行的标题,我们可以合并 Excel 单元格以在电子表格中轻松完成此操作。 合并单元格是指将两个或多个单元格合并为一个单元格,而取消合并单元格则是将一个单元格拆分为多个单元格。 在本文中,我将详细介绍如何以编程方式合并或取消合并 Excel 中的单元格,并附上Java代码供大家参考。

  • 在Java中合并Excel单元格
  • 在Java中取消合并Excel单元格

引入jar

导入方法1:

手动引入。将 Free Spire.XLS for Java 下载到本地,解压,找到lib文件夹下的Spire.Xls.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:

 

 

导入方法2:如果您想通过 Maven安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件。

<repositories>

    <repository>

        <id>com.e-iceblue</id>

        <name>e-iceblue</name>

        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>

    </repository>

</repositories>

<dependencies>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.xls.free</artifactId>

        <version>5.1.0</version>

    </dependency>

</dependencies>

在Java中合并单元格

根据以下步骤操作,您可以轻松合并指定范围内的单元格。

  • 创建一个Workbook实例。
  • 使用 Workbook.loadFromFile() 方法加载示例 Excel文档。

  • 使用 Workbook.getWorksheets().get() 方法获取指定的工作表。

  • 使用 Worksheet.getRange().get() 方法获取指定范围。

  • 使用 XlsRange.merge() 方法合并指定范围内的单元格。

  • 使用 XlsRange.getCellStyle().setHorizontalAlignment() 方法将合并单元格的水平对齐方式设置为 Center。

  • 使用 XlsRange.getCellStyle().setVerticalAlignment() 方法将合并单元格的垂直对齐方式设置为 Center。
  • 使用 Workbook.saveToFile() 方法保存结果文档。

完整代码

Java

import com.spire.xls.*;

public class MergeCells {
    public static void main(String[] args){

        //创建一个Workbook实例
        Workbook workbook = new Workbook();

        //加载示例 Excel 文档
        workbook.loadFromFile("示例文档.xlsx");

        //获取指定的工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        //按范围合并单元格
        sheet.getRange().get("A2:A4").merge();
        sheet.getRange().get("A5:A7").merge();
        sheet.getRange().get("A8:A10").merge();
        sheet.getRange().get("A11:A13").merge();

        //将合并单元格的水平对齐方式设置为居中
        sheet.getRange().get("A2").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);
        sheet.getRange().get("A5").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);
        sheet.getRange().get("A8").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);
        sheet.getRange().get("A11").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);

        //将合并单元格的垂直对齐方式设置为居中
        sheet.getRange().get("A2").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);
        sheet.getRange().get("A5").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);
        sheet.getRange().get("A8").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);
        sheet.getRange().get("A11").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);


        //保存结果文档
        workbook.saveToFile("合并单元格.xlsx", FileFormat.Version2013);
    }
}

效果对比图

在 Java 中取消合并 Excel 中的单元格

如果您不想合并Excel中的单元格,可以按照下面的方法取消合并指定范围内的单元格,详细步骤如下:

  • 创建一个Workbook实例。
  • 使用 Workbook.loadFromFile() 方法加载示例 Excel 文档。
  • 使用 Workbook.getWorksheets().get() 方法获取指定的工作表。
  • 使用 Worksheet.getRange().get() 方法获取指定范围。
  • 使用 XlsRange.unMerge() 方法取消合并指定范围内的单元格。使用 Workbook.saveToFile() 方法保存结果文档。

完整代码

Java

import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

public class UnmergeCells {
    public static void main(String[] args){

        //创建一个Workbook实例
        Workbook workbook = new Workbook();

        //加载示例 Excel 文档
        workbook.loadFromFile("合并单元格.xlsx");

        //获取指定的工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        //取消合并指定范围内的单元格
        sheet.getRange().get("A2:A4").unMerge();
        sheet.getRange().get("A5:A7").unMerge();

        //保存结果文档
        workbook.saveToFile("取消合并单元格.xlsx", FileFormat.Version2013);
    }
}

效果图

——本文完——

标签:getRange,Java,get,单元格,合并,Workbook,sheet
From: https://www.cnblogs.com/Carina-baby/p/16917311.html

相关文章

  • java 基础——函数(方法)
    【注:本篇适合零基础】 函数基本定义、语法首先我们先要了解什么是函数? 函数的定义:在类中,有特定功能的一段独立代码块 说人话:简单来说就是,在一个类(一个 .java ......
  • 【HarmonyOS】JavaUI组件触摸事件分发
    ​熟悉Android开发的同学肯定对触摸事件分发比较了解,那么在HarmonyOS开发应用需要对触摸事件处理该怎么做呢,下面结合一个实际的案例来讲解一下。 【需求】封装一个自定......
  • 【Java】StringBuffer和StringBuilder
    1.String、StringBuffer、StringBuilder三者对比底层都使用char[]数组存储数据。String:不可变的字符序列。StringBuffer:可变的字符序列,线程安全的,效率低。Stringbuild......
  • Java开发岗位职责【杭州多测师】【杭州多测师_王sir】
    上海公司内部岗位-世纪大道线下面试学历:2019年或之前毕业的统招学信网可查JD(职位描述):3年以上JAVA开发经验,大型互联网行业工作经验优先;(必须有一年实际开发经验)精通JAVA......
  • Java 内部类有坑。。100 % 内存泄露!
    来源:https://knife.blog.csdn.net/article/details/124946774今天给大家分享一种,Java内部类使用不当导致的内存泄露问题,最终导致内存溢出!希望能够帮助到大家!简介「说明......
  • java enum 对标 .net 的enum [Flags]
    一、前景在C#中的枚举中我们使用[Flags]来对枚举进行|(与)运算,比如这样:DemoEnumdemoEnum=DemoEnum.One|DemoEnum.Two;然后我们在使用的过程中,可以对demoEnum.HasF......
  • Java.11.22
    一.while循环1.while是最基本的循环,它的结构为:while(布尔表达式){//循环内容}2.只要布尔表达式为true,循环就会一直执行下去。3.我们大多数......
  • java int转byte数组
    int转byte[]低字节在前(低字节序)publicstaticbyte[]toLH(intn){byte[]b=newbyte[4];b[0]=(byte)(n&0xff);b[1]=(byte)(n>>8&0xff);......
  • 安卓开发 java控制UI
      创建布局管理器对象  设置背景  设置活动界面 按钮事件   按钮显示......
  • 力扣34(java)-在排序数组中查找元素的第一个和最后一个位置(中等)
    题目:给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回 [-1,-1]......