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在新版里已经废弃 ...
随机推荐
- UVa1601 - The Morning after Halloween [单向bfs]
解题思路: 1.注意到2*2方格中必有一个#,那么最多只有192条通道,可以将所有非‘#’的位置提取出来用邻接表的方式建图,通过bfs搜索目标位置. 2.将三个ghost的位置(a,b,c)作为状态量 ...
- H3C 路由的来源
- H3C 链路聚合配置举例
- 关于对height:100%的研究
参考此链接: https://segmentfault.com/a/1190000012707337
- 关于electron中入口文件main.js一些重要参数(持续更新maybe)
const {app, BrowserWindow} = require('electron') const path = require('path') let mainWindow functio ...
- Educational Codeforces Round 64部分题解
Educational Codeforces Round 64部分题解 A 题目大意:给定三角形(高等于低的等腰),正方形,圆,在满足其高,边长,半径最大(保证在上一个图形的内部)的前提下. 判断交点 ...
- STM32 命名方法
1.STM32型号的说明:以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下: STM32 ST公司生产的Cortex-M内核的32位微控制器 F F代表产品类型 ...
- 第二阶段:2.商业需求分析及BRD:2.产品需求池
需求获取方式 比如公司战略方面的需求 用户的反馈:投诉 建议等等 产品经理需要时刻关注竞品以及行业的发展! 需求池:各个产品经理的需求总和成一个需求池.让资源更好的利用起来.有的公司还有个“需求管理 ...
- ML基础——搜索引擎与图书管理,百度与李彦宏
本文始发于个人公众号:TechFlow 谈及机器学习,大家想必会有许多联想,比如最近火热的人工智能,再比如战胜李世石的AlphaGo,甚至还会有人联想起骇客帝国或者是机械公敌等经典机器人电影. 但实际 ...
- 驱动领域DDD的微服务设计和开发实战
你是否还在为微服务应该拆多小而争论不休?到底如何才能设计出收放自如的微服务?怎样才能保证业务领域模型与代码模型的一致性?或许本文能帮你找到答案. 本文是基于 DDD 的微服务设计和开发实战篇,通过借鉴 ...