Java 在 Excel 中添加或删除批注:Spire.XLS for Java 实践指南

在日常的数据处理工作中,我们经常需要在 Excel 表格中添加批注来解释数据、提供背景信息或标记待办事项。然而,手动操作效率低下,尤其当需要批量处理或集成到自动化流程中时。本文将深入探讨如何利用 Spire.XLS for Java 这一强大库,在 Java 应用程序中高效地实现 Excel 批注的添加与删除,助您告别繁琐,提升开发效率。

Spire.XLS for Java 库介绍与安装

Spire.XLS for Java 是一个专业级的 Java Excel API,专门用于创建、读取、编辑、转换和打印 Excel 文件,而无需安装 Microsoft Office。它支持多种 Excel 功能,包括单元格格式、公式、图表、图片、批注等。其优势在于功能全面、性能卓越,且提供丰富的API接口,极大简化了 Java 操作 Excel 的复杂性。

Maven 依赖配置:

在您的 pom.xml 文件中添加以下依赖,即可引入 Spire.XLS for Java 库:

xml 复制代码
    
    
    
  <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</artifactId>
        <version>15.10.5</version>
    </dependency>
</dependencies>

获取和引入库:

您可以从 Spire.XLS for Java 官网下载 JAR 包并手动添加到项目构建路径中。对于 Maven/Gradle 用户,配置好依赖后,构建工具会自动下载并引入库。

Java 在 Excel 中添加批注

使用 Spire.XLS for Java 添加批注非常直观。核心步骤包括加载 Excel 文件、选择目标单元格、创建批注对象并设置其属性,最后保存文件。

添加批注的步骤:

  • 创建或加载 Workbook 对象: 表示一个 Excel 工作簿。
  • 获取目标 Worksheet: 通过索引或名称获取要操作的工作表。
  • 获取目标 CellRange: 定位到需要添加批注的单元格。
  • 调用 CellRange.getComment().setText() 方法: 在 CellRange 对象上创建批注。
  • 设置批注属性: 包括批注文本、作者、可见性、尺寸等。
  • 保存 Workbook: 将更改写入 Excel 文件。

代码示例:

java 复制代码
    
    
    
  import com.spire.xls.*;

public class InsertComments {
    public static void main(String[] args){
        //新建Excel文档
        Workbook workbook = new Workbook();
        //获取第一张工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        //创建字体
        ExcelFont font = workbook.createFont();
        font.setFontName("Arial");
        font.setSize(11);
        font.setKnownColor(ExcelColors.Orange);
        ExcelFont fontBlue = workbook.createFont();
        fontBlue.setKnownColor(ExcelColors.LightBlue);
        ExcelFont fontGreen = workbook.createFont();
        fontGreen.setKnownColor(ExcelColors.LightGreen);

        //给指定的Excel单元格添加普通批注
        CellRange range = sheet.getCellRange("A1");
        range.setText("Spire.XLS");
        range.getComment().setText("Excel文档处理组件");
        range.autoFitColumns();

        //给指定的Excel单元格添加富文本批注
        range = sheet.getCellRange("A2");
        range.setText("Spire.XLS");
        range.getRichText().setFont(0, 8, font);
        range.autoFitColumns();
        range.getComment().getRichText().setText("Excel文档处理组件");
        range.getComment().getRichText().setFont(0, 4, fontGreen);
        range.getComment().getRichText().setFont(5, 6, fontBlue);

        //保存结果文档
        workbook.saveToFile("AddComments.xlsx", ExcelVersion.Version2013);
    }
}

批注关键属性设置速览:

属性 描述 示例方法
setText() 设置批注的文字内容 comment.setText("内容");
setAuthor() 设置批注的作者 comment.setAuthor("作者名");
setVisible() 设置批注是否始终可见(true/false comment.setVisible(true);
setWidth() 设置批注框的宽度(单位:像素) comment.setWidth(200);
setHeight() 设置批注框的高度(单位:像素) comment.setHeight(80);
getRichText() 获取富文本对象,用于设置字体、颜色等样式 comment.getRichText().setFont(...);

Java 删除 Excel 中的批注

删除 Excel 批注同样简单,Spire.XLS for Java 提供了直接的方法来移除单元格上的批注。

删除批注的步骤:

  • 加载 Workbook 对象: 加载包含批注的 Excel 文件。
  • 获取目标 Worksheet: 获取要操作的工作表。
  • 获取目标 CellRange: 定位到包含批注的单元格。
  • 调用 ExcelCommentObject.remove() 方法: 从 Excel 中移除批注。
  • 保存 Workbook: 将更改写入 Excel 文件。

代码示例:

java 复制代码
    
    
    
  import com.spire.xls.*;

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

        //创建Workbook类的对象
        Workbook wb = new Workbook();

        //载入Excel文件
        wb.loadFromFile("新员工信息.xlsx");

        //获取载入的工作簿的第一个工作表
        Worksheet sheet = wb.getWorksheets().get(0);

        //获取指定单元格的批注并删除
        sheet.getRange().get("A4").getComment().remove();

        //保存文件
        wb.saveToFile("删除批注.xlsx", ExcelVersion.Version2013);
        wb.dispose();
    }
}

总结

通过 Spire.XLS for Java,Java 开发者可以轻松实现 Excel 批注的添加与删除,无论是单个单元格操作还是批量处理,都能高效完成。其清晰的 API 设计和丰富的功能,使其成为 Java 处理 Excel 文件的理想选择。掌握这些技巧,您的 Java 应用将能更好地与 Excel 数据进行交互,为数据分析、报表生成等场景提供更灵活、强大的支持,从而显著提升数据处理的自动化水平。

相关推荐
2601_965780182 小时前
当平台房间爆满,如何稳定游玩求生之路2浩方联机版?
经验分享
Ztt66666666611 小时前
金泉方壶四面端正,月白釉却把棱角放柔了
经验分享·笔记·其他·百度·微信公众平台
LuminousCPP11 小时前
数据结构-时间与复杂度|时间/空间复杂度 + 两道力扣练习 + 二分查找复盘
c语言·数据结构·经验分享·算法·leetcode
CHENGQUAN_kenan14 小时前
亚马逊境外店铺利润境内回流:税务规则、佛山实操与自查要点
大数据·经验分享·教育电商
野生yumeko14 小时前
QtScrcpy电脑无线控制手机屏幕
经验分享·笔记·智能手机
LccKyI14 小时前
C#学习day06(方法/函数及其关键字,附思维导图)
经验分享·学习·c#
qingyunliushuiyu16 小时前
制造行业智能问数工具怎么选?2026年选型核心要点梳理
大数据·人工智能·经验分享·制造
神明不懂浪漫2 天前
【第五章】队列
开发语言·数据结构·经验分享·笔记·算法
Thom5802 天前
【迅投 QMT】QMT如何获取ETF申赎清单?download_etf_info()与get_etf_info()教程
人工智能·经验分享·量化交易·ptrade·量化编程
神明不懂浪漫2 天前
【第六章】二叉树
开发语言·数据结构·经验分享·笔记·算法