Java 添加、修改、读取、复制、删除Excel批注的实现

2020-02-25 14:02:25王冬梅

批注,是作者或审阅者给文档添加的注释或注解。通过查看批注,可以更加详细地了解某些文字的背景。除了直接添加文本信息外,还可为文本信息填充背景图片使其更具丰富性和美观性。本文将通过使用Java程序来演示如何在Excel文档中添加、修改、读取、复制和删除批注。

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

Jar文件获取及导入:

方法1:通过官方网站下载获取jar包。解压后将lib文件夹下的Spire.Xls.jar文件导入Java程序。(如下图)


方法2:通过maven仓库安装导入。具体安装详解参见此网页。

【示例1】添加批注

import com.spire.xls.*;
import java.awt.*;
public class AddComments {
 public static void main(String[] args) {

  //加载Excel文档
  Workbook wb = new Workbook();
  wb.loadFromFile("D:DesktopSample.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("G3");
  range.getComment().setText("正式员工");
  range.getComment().setTextRotation(TextRotationType.TopToBottom);
  range.autoFitColumns();
  range.getComment().setVisible(true);//设置批注是否隐藏
  range.getComment().getFill().customPicture("D:DesktopImage.jpg");//背景图片填充
  //range.getComment().getFill().setForeColor(new Color(255,228,225));//颜色填充

  // 给指定的Excel单元格添加富文本批注
  range = sheet.getCellRange("G7");
  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("output/AddComments.xlsx", ExcelVersion.Version2013);
  wb.dispose();

 }
}

批注添加效果:

【示例2】修改批注

import com.spire.xls.*;
public class ModifyComments {
 public static void main(String[] args) {
  //加载excel文档
  Workbook wb = new Workbook();
  wb.loadFromFile("D:DesktopAddComments.xlsx");
  //获取工作表
  Worksheet sheet = wb.getWorksheets().get(0);
  //获取指定单元格中的批注,设置新的批注文本、填充色
  sheet.getRange().get("G3").getComment().setText("个人使用");
  sheet.getRange().get("G7").getComment().setText("团队使用");
  //保存文档
  wb.saveToFile("output/ModifyComment.xlsx",ExcelVersion.Version2013);
  wb.dispose();
 }
}