本文介绍通过Java程序来操作Excel批注的方法。操作内容包括批注添加(添加批注文本、背景色、字体、自适应等)、修改、读取(文本、图片)、复制、删除等。

工具Free Spire.XLS for Java (免费版)

注:Jar文件获取可通过官网下载包,并解压将lib文件夹下的jar文件导入java程序;或通过maven下载导入。

导入结果如下:


Java代码示例

【示例1】添加批注

  1. import com.spire.xls.*;
  2.  
  3. import java.awt.*;
  4.  
  5. public class AddComment {
  6. public static void main(String[] args) {
  7. //加载Excel文档
  8. Workbook wb = new Workbook();
  9. wb.loadFromFile("test.xlsx");
  10.  
  11. //获取工作表
  12. Worksheet sheet = wb.getWorksheets().get(0);
  13.  
  14. //创建字体
  15. ExcelFont font = wb.createFont();
  16. font.setFontName("Arial");
  17. font.setSize(11);
  18. font.setKnownColor(ExcelColors.Orange);
  19. ExcelFont fontBlue = wb.createFont();
  20. fontBlue.setKnownColor(ExcelColors.LightBlue);
  21. ExcelFont fontGreen = wb.createFont();
  22. fontGreen.setKnownColor(ExcelColors.LightGreen);
  23.  
  24. //给指定的Excel单元格添加普通批注
  25. CellRange range = sheet.getCellRange("H2");
  26. range.getComment().setText("税前价格");
  27. range.getComment().setTextRotation(TextRotationType.TopToBottom);
  28. range.autoFitColumns();
  29. range.getComment().setVisible(true);//设置批注是否隐藏
  30. range.getComment().getFill().customPicture("logo.png");//背景图片填充
  31. //range.getComment().getFill().setForeColor(new Color(255,228,225));//颜色填充
  32.  
  33. //给指定的Excel单元格添加富文本批注
  34. range = sheet.getCellRange("F2");
  35. range.getRichText().setFont(0, 8, font);
  36. range.autoFitColumns();
  37. range.getComment().getRichText().setText("已入库数量");
  38. range.getComment().getRichText().setFont(0, 4, fontGreen);
  39. range.getComment().getRichText().setFont(3, 4, fontBlue);
  40.  
  41. //保存结果文档
  42. wb.saveToFile("AddComments.xlsx", ExcelVersion.Version2013);
  43. wb.dispose();
  44. }
  45. }

批注添加效果:

【示例2】修改批注

  1. import com.spire.xls.*;
  2.  
  3. public class ModifyComment {
  4. public static void main(String[] args) {
  5. //加载excel文档
  6. Workbook wb = new Workbook();
  7. wb.loadFromFile("AddComments.xlsx");
  8.  
  9. //获取工作表
  10. Worksheet sheet = wb.getWorksheets().get(0);
  11.  
  12. //获取指定单元格中的批注,设置新的批注文本、填充色
  13. sheet.getRange().get("H2").getComment().setText("不含税价");
  14. sheet.getRange().get("F2").getComment().setText("最新数据");
  15.  
  16. //保存文档
  17. wb.saveToFile("ModifyComment.xlsx",ExcelVersion.Version2013);
  18. wb.dispose();
  19. }
  20. }

批注修改结果:

【示例3】读取批注

  1. import com.spire.xls.*;
  2.  
  3. import javax.imageio.ImageIO;
  4. import java.awt.*;
  5. import java.awt.image.BufferedImage;
  6. import java.io.File;
  7. import java.io.IOException;
  8.  
  9. public class ExtractComment {
  10. public static void main(String[] args)throws IOException {
  11. //加载excel文档
  12. Workbook wb = new Workbook();
  13. wb.loadFromFile("AddComments.xlsx");
  14.  
  15. //获取工作表
  16. Worksheet sheet = wb.getWorksheets().get(0);
  17.  
  18. //打印指定单元格的文本批注内容
  19. System.out.println("H2 的批注文本 = " + sheet.getCellRange("H2").getComment().getText());
  20. System.out.println("F2 的批注文本 = " + sheet.getCellRange("F2").getComment().getRichText().getRtfText());
  21.  
  22. //获取指定单元格中批注背景颜色
  23. Color color = sheet.getRange().get("H2").getComment().getFill().getForeColor();
  24. System.out.print(color);
  25.  
  26. //获取指定单元格中的批注背景图片
  27. /*BufferedImage image = sheet.getRange().get("H2").getComment().getFill().getPicture();
  28. ImageIO.write(image,"png",new File("ExtractedImages.png"));*/
  29.  
  30. }
  31. }

批注读取结果:

读取的图片可在程序文件夹下查看。

【示例4】复制批注

  1. import com.spire.xls.*;
  2.  
  3. import java.awt.*;
  4. import java.awt.image.BufferedImage;
  5.  
  6. public class CopyComment {
  7. public static void main(String[] args) {
  8. //加载Excel文档
  9. Workbook wb = new Workbook();
  10. wb.loadFromFile("AddComments.xlsx");
  11.  
  12. //获取指定工作表
  13. Worksheet sheet = wb.getWorksheets().get(0);
  14.  
  15. //获取源单元格批注内容
  16. CellRange range = sheet.getRange().get("H2");//获取指定单元格
  17. String commenttext = range.getComment().getText();//获取批注文本
  18. BufferedImage image = range.getComment().getFill().getPicture();//获取批注填充图片
  19. // Object object = range.getComment().getFill().getForeColor();//获取批注填充色
  20.  
  21. //获取新的单元格,添加批注文本和图片(颜色)填充
  22. CellRange range1 = sheet.getRange().get("D3");
  23. range1.getComment().setText(commenttext);
  24. range1.getComment().getFill().customPicture(image," ");
  25. //range1.getComment().getFill().setForeColor((Color) object);
  26.  
  27. //保存文档
  28. wb.saveToFile("CopyComment.xlsx",ExcelVersion.Version2013);
  29. wb.dispose();
  30. }
  31. }

批注复制结果:

【示例5】删除批注

  1. import com.spire.xls.ExcelVersion;
  2. import com.spire.xls.FileFormat;
  3. import com.spire.xls.Workbook;
  4. import com.spire.xls.Worksheet;
  5.  
  6. public class DeleteComment {
  7. public static void main(String[] args) {
  8. //加载Excel文档
  9. Workbook wb = new Workbook();
  10. wb.loadFromFile("AddComments.xlsx");
  11.  
  12. //获取工作表
  13. Worksheet sheet = wb.getWorksheets().get(0);
  14.  
  15. //获取指定单元格中的批注,并删除
  16. sheet.getRange().get("H2").getComment().remove();
  17.  
  18. //保存文档
  19. wb.saveToFile("DeleteComment.xlsx", ExcelVersion.Version2013);
  20. wb.dispose();
  21. }
  22. }

批注删除结果:

(本文完)

Java 添加、修改、读取、复制、删除Excel批注的更多相关文章

  1. Java 添加、读取和删除 Excel 批注

    批注是一种富文本注释,常用于为指定的Excel单元格添加提示或附加信息. Free Spire.XLS for Java 为开发人员免费提供了在Java应用程序中对Excel文件添加和操作批注的功能. ...

  2. Java 添加、读取、删除Excel图片

    本文介绍在Java程序中如何添加图片到excel表格,添加图片时可设置图片大小.位置.旋转.超链接.可选文本等,以及如何读取.删除excel表格中已有的图片. 工具:Free Spire.XLS fo ...

  3. Java 添加、读取、删除Excel文档属性

    在文档属性中,可以设置诸多关于文档的信息,如创建时间.作者.单位.类别.关键词.备注等摘要信息以及一些自定义的文档属性.下面将通过Java程序来演示如何设置,同时对文档内的已有信息,也可以实现读取和删 ...

  4. Java 添加、读取、删除Excel形状

    本文介绍通过java程序在excel中操作形状(图形)的方法,包括: 1. 添加形状(如设置形状类型/位置/大小.形状颜色填充(单色/渐变色/纹理/图片填充).形状显示或隐藏.形状倾斜角度.添加文本到 ...

  5. Java 添加、读取、删除Excel文本框

    本文介绍通过Java程序添加文本框到Excel的方法,添加文本框时,可以添加文本.设置文本方向.文本对齐方式.设置文本框大小.位置.填充色/填充图片.文本框旋转角度.文本框名称.可选文本.文本框隐藏或 ...

  6. Java 添加、读取、删除Excel中的图表趋势线

    本文以Java示例介绍如何在Excel中添加趋势线,以及读取趋势线公式.通过文中的方法可支持添加6种不同类型的趋势线,包括Linear.Exponential.Logarithmic.Moving A ...

  7. C# 添加、读取、删除Excel文档属性

    在文档属性中,可以设置诸多关于文档的信息,如创建时间.作者.单位.类别.关键词.备注等摘要信息以及一些自定义的文档属性.下面将通过C#程序来演示如何设置,同时对文档内的已有信息,也可以实现读取或删除等 ...

  8. Java 添加、读取、删除PPT文档属性

    文档属性是一些描述性的信息,它未包含在文件的实际内容中,但提供了有关文件的信息,可用来帮助查找和整理文件.以下示例中将介绍通过Java程序来添加PPT文档属性.读取.删除PPT文档中已有属性的方法. ...

  9. Java 添加 、读取以及删除PPT幻灯片中的视频、音频文件

    在PPT中,可以操作很多种元素,如形状.图形.文字.图片.表格等,也可以插入视频或者音频文件,来丰富幻灯片的内容呈现方式.下面将介绍在Java程序中如何来添加视频.音频文件到PPT幻灯片,读取和删除幻 ...

  10. Java使用POI读取和写入Excel指南

    Java使用POI读取和写入Excel指南 做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃 ...

随机推荐

  1. UVa1601 - The Morning after Halloween [单向bfs]

    解题思路: 1.注意到2*2方格中必有一个#,那么最多只有192条通道,可以将所有非‘#’的位置提取出来用邻接表的方式建图,通过bfs搜索目标位置. 2.将三个ghost的位置(a,b,c)作为状态量 ...

  2. H3C 路由的来源

  3. H3C 链路聚合配置举例

  4. 关于对height:100%的研究

    参考此链接: https://segmentfault.com/a/1190000012707337

  5. 关于electron中入口文件main.js一些重要参数(持续更新maybe)

    const {app, BrowserWindow} = require('electron') const path = require('path') let mainWindow functio ...

  6. Educational Codeforces Round 64部分题解

    Educational Codeforces Round 64部分题解 A 题目大意:给定三角形(高等于低的等腰),正方形,圆,在满足其高,边长,半径最大(保证在上一个图形的内部)的前提下. 判断交点 ...

  7. STM32 命名方法

    1.STM32型号的说明:以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下: STM32  ST公司生产的Cortex-M内核的32位微控制器 F F代表产品类型 ...

  8. 第二阶段:2.商业需求分析及BRD:2.产品需求池

    需求获取方式 比如公司战略方面的需求  用户的反馈:投诉 建议等等 产品经理需要时刻关注竞品以及行业的发展! 需求池:各个产品经理的需求总和成一个需求池.让资源更好的利用起来.有的公司还有个“需求管理 ...

  9. ML基础——搜索引擎与图书管理,百度与李彦宏

    本文始发于个人公众号:TechFlow 谈及机器学习,大家想必会有许多联想,比如最近火热的人工智能,再比如战胜李世石的AlphaGo,甚至还会有人联想起骇客帝国或者是机械公敌等经典机器人电影. 但实际 ...

  10. 驱动领域DDD的微服务设计和开发实战

    你是否还在为微服务应该拆多小而争论不休?到底如何才能设计出收放自如的微服务?怎样才能保证业务领域模型与代码模型的一致性?或许本文能帮你找到答案. 本文是基于 DDD 的微服务设计和开发实战篇,通过借鉴 ...