

Java 添加、修改、读取、复制、删除Excel批注
source link: http://www.cnblogs.com/Yesi/p/12214699.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

本文介绍通过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(); } }
批注删除结果:
(本文完)
Recommend
-
53
在html5中,DOM给文件中添加了一个files集合,在选取文件中,files中包含一个File对象,每个对象都有下列属性: name: 本地文件的文件名 size:文件的大小 type: 字符串,文件的MIME类型 lastModifiedDate: 字
-
8
开源、可定制的网页批注工具——Hypothesis 俗话说「不动笔墨不读书」,但在网络阅读的场景下,给「笔墨」找到合适的电子替代物并不容易。尽管市面上存在不少批注网页文章的解决方案,但仔细想来,似乎很少有哪个工具能较好地同时满足以下几个要求:
-
8
测试框架中参数化的一般形式 在Junit4和TestNG框架中实现参数化的形式几乎是一致的。 Junit4定义参数化数据,代码如下:...
-
10
有不同的方法进行对象检测,如TensorFlow对象检测、Yolo对象检测。每种方法都有其自己的输入数据格式。TensorFlow对象检测接受XML格式的输入,Yolo对象检测接受txt格式的输入。 在这里,我将分享将可用数据从一种格式转换为另一种格式的代码。 让...
-
5
详解SEED数据服务平台(5):批改与批注发布于 今天 03:13 上一期内容中,我们介绍了标注工作流中,如何通过编辑与修改标注对象,以提升整体数据准确率:详解S...
-
7
ckeditor4文本编辑器增加批注功能 ...
-
12
xlrd 读取 xls (excel)的日期、时间单元格的问题 浏览:4130次 出处信息 xlrd 是python 的xls处理...
-
8
-
4
调整页码、转移批注、切割页面:这些命令行工具帮你玩转 PDF 无需 Adobe Acrobat 或付费 PDF 软件,也能玩转复杂 PDF 操作 如今,无论是商业文件,电子书籍,还是学术论文,大多以 PDF 文件格式存储和分发。这主...
-
2
本文介绍基于Microsoft SQL Server软件,实现数据库表的创建、修改、复制、删除与表数据处理的方法。 数据库基础(二):数据库表创建、修改、复制、删除与表数据处理
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK