Java 添加、修改、读取、复制、删除Excel批注
本文介绍通过Java程序来操作Excel批注的方法。操作内容包括批注添加(添加批注文本、背景色、字体、自适应等)、修改、读取(文本、图片)、复制、删除等。
工具:Free Spire.XLS for Java (免费版)
注:Jar文件获取可通过官网下载包,并解压将lib文件夹下的jar文件导入java程序;或通过maven下载导入。
导入结果如下:

Java代码示例
【示例1】添加批注
import com.spire.xls.*;
import java.awt.*;
public class AddComment {
public static void main(String[] args) {
//加载Excel文档
Workbook wb = new Workbook();
wb.loadFromFile("test.xlsx");
//获取工作表
Worksheet sheet = wb.getWorksheets().get(0);
//创建字体
ExcelFont font = wb.createFont();
font.setFontName("Arial");
font.setSize(11);
font.setKnownColor(ExcelColors.Orange);
ExcelFont fontBlue = wb.createFont();
fontBlue.setKnownColor(ExcelColors.LightBlue);
ExcelFont fontGreen = wb.createFont();
fontGreen.setKnownColor(ExcelColors.LightGreen);
//给指定的Excel单元格添加普通批注
CellRange range = sheet.getCellRange("H2");
range.getComment().setText("税前价格");
range.getComment().setTextRotation(TextRotationType.TopToBottom);
range.autoFitColumns();
range.getComment().setVisible(true);//设置批注是否隐藏
range.getComment().getFill().customPicture("logo.png");//背景图片填充
//range.getComment().getFill().setForeColor(new Color(255,228,225));//颜色填充
//给指定的Excel单元格添加富文本批注
range = sheet.getCellRange("F2");
range.getRichText().setFont(0, 8, font);
range.autoFitColumns();
range.getComment().getRichText().setText("已入库数量");
range.getComment().getRichText().setFont(0, 4, fontGreen);
range.getComment().getRichText().setFont(3, 4, fontBlue);
//保存结果文档
wb.saveToFile("AddComments.xlsx", ExcelVersion.Version2013);
wb.dispose();
}
}
批注添加效果:

【示例2】修改批注
import com.spire.xls.*;
public class ModifyComment {
public static void main(String[] args) {
//加载excel文档
Workbook wb = new Workbook();
wb.loadFromFile("AddComments.xlsx");
//获取工作表
Worksheet sheet = wb.getWorksheets().get(0);
//获取指定单元格中的批注,设置新的批注文本、填充色
sheet.getRange().get("H2").getComment().setText("不含税价");
sheet.getRange().get("F2").getComment().setText("最新数据");
//保存文档
wb.saveToFile("ModifyComment.xlsx",ExcelVersion.Version2013);
wb.dispose();
}
}
批注修改结果:

【示例3】读取批注
import com.spire.xls.*; import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException; public class ExtractComment {
public static void main(String[] args)throws IOException {
//加载excel文档
Workbook wb = new Workbook();
wb.loadFromFile("AddComments.xlsx"); //获取工作表
Worksheet sheet = wb.getWorksheets().get(0); //打印指定单元格的文本批注内容
System.out.println("H2 的批注文本 = " + sheet.getCellRange("H2").getComment().getText());
System.out.println("F2 的批注文本 = " + sheet.getCellRange("F2").getComment().getRichText().getRtfText()); //获取指定单元格中批注背景颜色
Color color = sheet.getRange().get("H2").getComment().getFill().getForeColor();
System.out.print(color); //获取指定单元格中的批注背景图片
/*BufferedImage image = sheet.getRange().get("H2").getComment().getFill().getPicture();
ImageIO.write(image,"png",new File("ExtractedImages.png"));*/ }
}
批注读取结果:

读取的图片可在程序文件夹下查看。
【示例4】复制批注
import com.spire.xls.*; import java.awt.*;
import java.awt.image.BufferedImage; public class CopyComment {
public static void main(String[] args) {
//加载Excel文档
Workbook wb = new Workbook();
wb.loadFromFile("AddComments.xlsx"); //获取指定工作表
Worksheet sheet = wb.getWorksheets().get(0); //获取源单元格批注内容
CellRange range = sheet.getRange().get("H2");//获取指定单元格
String commenttext = range.getComment().getText();//获取批注文本
BufferedImage image = range.getComment().getFill().getPicture();//获取批注填充图片
// Object object = range.getComment().getFill().getForeColor();//获取批注填充色 //获取新的单元格,添加批注文本和图片(颜色)填充
CellRange range1 = sheet.getRange().get("D3");
range1.getComment().setText(commenttext);
range1.getComment().getFill().customPicture(image," ");
//range1.getComment().getFill().setForeColor((Color) object); //保存文档
wb.saveToFile("CopyComment.xlsx",ExcelVersion.Version2013);
wb.dispose();
}
}
批注复制结果:

【示例5】删除批注
import com.spire.xls.ExcelVersion;
import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet; public class DeleteComment {
public static void main(String[] args) {
//加载Excel文档
Workbook wb = new Workbook();
wb.loadFromFile("AddComments.xlsx"); //获取工作表
Worksheet sheet = wb.getWorksheets().get(0); //获取指定单元格中的批注,并删除
sheet.getRange().get("H2").getComment().remove(); //保存文档
wb.saveToFile("DeleteComment.xlsx", ExcelVersion.Version2013);
wb.dispose();
}
}
批注删除结果:

(本文完)
Java 添加、修改、读取、复制、删除Excel批注的更多相关文章
- Java 添加、读取和删除 Excel 批注
批注是一种富文本注释,常用于为指定的Excel单元格添加提示或附加信息. Free Spire.XLS for Java 为开发人员免费提供了在Java应用程序中对Excel文件添加和操作批注的功能. ...
- Java 添加、读取、删除Excel图片
本文介绍在Java程序中如何添加图片到excel表格,添加图片时可设置图片大小.位置.旋转.超链接.可选文本等,以及如何读取.删除excel表格中已有的图片. 工具:Free Spire.XLS fo ...
- Java 添加、读取、删除Excel文档属性
在文档属性中,可以设置诸多关于文档的信息,如创建时间.作者.单位.类别.关键词.备注等摘要信息以及一些自定义的文档属性.下面将通过Java程序来演示如何设置,同时对文档内的已有信息,也可以实现读取和删 ...
- Java 添加、读取、删除Excel形状
本文介绍通过java程序在excel中操作形状(图形)的方法,包括: 1. 添加形状(如设置形状类型/位置/大小.形状颜色填充(单色/渐变色/纹理/图片填充).形状显示或隐藏.形状倾斜角度.添加文本到 ...
- Java 添加、读取、删除Excel文本框
本文介绍通过Java程序添加文本框到Excel的方法,添加文本框时,可以添加文本.设置文本方向.文本对齐方式.设置文本框大小.位置.填充色/填充图片.文本框旋转角度.文本框名称.可选文本.文本框隐藏或 ...
- Java 添加、读取、删除Excel中的图表趋势线
本文以Java示例介绍如何在Excel中添加趋势线,以及读取趋势线公式.通过文中的方法可支持添加6种不同类型的趋势线,包括Linear.Exponential.Logarithmic.Moving A ...
- C# 添加、读取、删除Excel文档属性
在文档属性中,可以设置诸多关于文档的信息,如创建时间.作者.单位.类别.关键词.备注等摘要信息以及一些自定义的文档属性.下面将通过C#程序来演示如何设置,同时对文档内的已有信息,也可以实现读取或删除等 ...
- Java 添加、读取、删除PPT文档属性
文档属性是一些描述性的信息,它未包含在文件的实际内容中,但提供了有关文件的信息,可用来帮助查找和整理文件.以下示例中将介绍通过Java程序来添加PPT文档属性.读取.删除PPT文档中已有属性的方法. ...
- Java 添加 、读取以及删除PPT幻灯片中的视频、音频文件
在PPT中,可以操作很多种元素,如形状.图形.文字.图片.表格等,也可以插入视频或者音频文件,来丰富幻灯片的内容呈现方式.下面将介绍在Java程序中如何来添加视频.音频文件到PPT幻灯片,读取和删除幻 ...
- Java使用POI读取和写入Excel指南
Java使用POI读取和写入Excel指南 做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃 ...
随机推荐
- Spring Cloud探路(二) Erueka客户端的建立
接上篇 1.pom.xml与上篇一致 2.新建包及Application启动类 @Configuration @ComponentScan @EnableEurekaClient @EnableAut ...
- java 面试题之交通灯管理系统
需求: 交通灯管理系统的项目需求 Ø 异步随机生成按照各个路线行驶的车辆. 例如: 由南向而来去往北向的车辆 ---- 直行车辆 由西向而来去往南向的车辆 ---- 右转车辆 由东向而来去往南向的车辆 ...
- 使用Python内置的smtplib包和email包来实现邮件的构造和发送。
此文章github地址:https://github.com/GhostCNZ/Python_sendEmail Python_sendEmail 使用Python内置的smtplib包和email包 ...
- Codevs 四子连棋 (迭代加深搜索)
题目描述 Description 在一个4*4的棋盘上摆放了14颗棋子,其中有7颗白色棋子,7颗黑色棋子,有两个空白地带,任何一颗黑白棋子都可以向上下左右四个方向移动到相邻的空格,这叫行棋一步,黑白双 ...
- SPOJ - PHRASES Relevant Phrases of Annihilation (后缀数组)
You are the King of Byteland. Your agents have just intercepted a batch of encrypted enemy messages ...
- 使用Pandas加载数据
1.dataframe对象简述: dataframe为pandas中一种有行列索引的二维数据结构,可以看成在普通二维结构上加上行列id标记 示例为创建一个2X3的dataframe: import s ...
- springmvc整合freemarker教程(转)
1.介绍 我最近喜欢freemarker在网上找了大半天.都没有找到一个简单又容易理解的案例.虽然只是一个模板技术.但是相对刚开始什么都不知道的,很难入手.下面是自学(其实是谷歌和百度的东找西补).写 ...
- springboot 简单邮件发送
写作原因: 项目接近尾声,需求一变再变,其实技术点从未改变,只是业务逻辑的变更,发送邮件提醒的功能,两个月变更七次.我想把技术点记录下来,这里无关乎业务,只有发送邮件的功能. 邮件发送准备说明: 由于 ...
- 009 Ceph RBD增量备份与恢复
一.RBD的导入导出介绍 Ceph存储可以利用快照做数据恢复,但是快照依赖于底层的存储系统没有被破坏 可以利用rbd的导入导出功能将快照导出备份 RBD导出功能可以基于快照实现增量导出 二.RBD导出 ...
- nginx部署vue跨域proxy方式
server { listen 80; charset utf-8; #server_name localhost; server_name you_h5_name; ###VUE项目H5域名 err ...