点击上方 **好好学java **,选择 **星标 **公众号
重磅资讯、干货,第一时间送达
今日推荐:分享一个牛逼的 Java 开源后台管理系统,不要造轮子了!个人原创+1博客:点击前往,查看更多
作者:Jazz
来源:https://segmentfault.com/a/1190000022238166
批注是一种富文本注释,常用于为指定的Excel单元格添加提示或附加信息。Free Spire.XLS for Java为开发人员免费提供了在Java应用程序中对Excel文件添加和操作批注的功能。本文将介绍如何使用[Free Spire.XLS for Java]:https://www.e-iceblue.cn/Introduce/Free-Spire-XLS-JAVA.html在Excel文档中添加,读取和删除批注。
安装
首先你需要下载[Spire.XLS JAR]:https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-JAVA.html并将其作为依赖项添加到您的Java程序中。如果您使用的是maven,您需要将以下依赖项添加到您的pom.xml文件中。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
添加批注
下面的示例将演示如何使用免费的Free Spire.XLS for Java将批注添加到Excel文件中,并为批注文本中各个字符设置不同的字体颜色。
importcom.spire.xls.\*;
publicclassAddComments{
publicstaticvoidmain(String\[\]args){
//新建Excel文档
Workbookworkbook\=newWorkbook();
//获取第一张工作表
Worksheetsheet\=workbook.getWorksheets().get(0);
//设置工作表名称
sheet.setName("批注");
//添加文本到单元格\[1,1\]
CellRangerange\=sheet.getCellRange(1,1);
range.setText("添加批注:");
//添加文本到单元格 \[5,1\]
CellRangerange1\=sheet.getCellRange(5,1);
range1.setText("批注");
//添加批注到单元格 \[5,1\]
range1.getComment().setText("这是一个批注\\n它可以是多行的。");
//展示批注
range1.getComment().setVisible(true);
//设置批注高度
range1.getComment().setHeight(100);
//创建字体并设置字体颜色
ExcelFontfontBlue\=workbook.createFont();
fontBlue.setKnownColor(ExcelColors.LightBlue);
ExcelFontfontGreen\=workbook.createFont();
fontGreen.setKnownColor(ExcelColors.LightGreen);
//设置批注文本中各个字符的字体
range1.getComment().getRichText().setFont(0,1,fontGreen);
range1.getComment().getRichText().setFont(2,3,fontBlue);
range1.getComment().getRichText().setFont(4,5,fontGreen);
//保存结果文档
workbook.saveToFile("添加批注.xlsx",ExcelVersion.Version2013);
}
}
读取批注
Free Spire.XLS for Java支持读取所有批注以及与Excel工作表中指定单元格相关联的特定批注。
importcom.spire.xls.\*;
publicclassReadComments{
publicstaticvoidmain(String\[\]args){
//加载Excel文档
Workbookworkbook\=newWorkbook();
workbook.loadFromFile("添加批注.xlsx");
//获取第一张工作表
Worksheetsheet\=workbook.getWorksheets().get(0);
//打印工作表中所有的批注
for(inti\=0;i<sheet.getComments().getCount();i++){
Stringcomment\=sheet.getComments().get(i).getText();
System.out.println(comment);
}
//打印与指定单元格相关联的批注
//System.out.println(sheet.getCellRange(5,1).getComment().getText());
}
}
删除****批注
通过使用Free Spire.XLS for Java我们可以删除所有注释,也可以删除与Excel工作表中指定单元格相关联的特定批注。
importcom.spire.xls.\*;
publicclassDeleteComments{
publicstaticvoidmain(String\[\]args){
//加载Excel文档
Workbookworkbook\=newWorkbook();
workbook.loadFromFile("添加批注.xlsx");
//获取第一张工作表
Worksheetsheet\=workbook.getWorksheets().get(0);
//删除工作表中所有批注
for(inti\=0;i<sheet.getComments().getCount();i++){
sheet.getComments().get(i).remove();
}
//删除与指定单元格相关联的批注
sheet.getCellRange(5,1).getComment().remove();
workbook.saveToFile("删除批注.xlsx",ExcelVersion.Version2013);
}
}