Java 添加、修改、讀取、復(fù)制、刪除Excel批注

批注,是作者或?qū)忛喺呓o文檔添加的注釋或注解。通過查看批注,可以更加詳細地了解某些文字的背景。除了直接添加文本信息外,還可為文本信息填充背景圖片使其更具豐富性和美觀性。本文將通過使用Java程序來演示如何在Excel文檔中添加、修改、讀取、復(fù)制和刪除批注。

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

Jar文件獲取及導(dǎo)入:

方法1通過官方網(wǎng)站下載獲取jar包。解壓后將lib文件夾下的Spire.Xls.jar文件導(dǎo)入Java程序。(如下圖)


方法2通過maven倉庫安裝導(dǎo)入。具體安裝詳解參見此網(wǎng)頁。

【示例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:\\Desktop\\Sample.xlsx");

??????? //獲取工作表

Worksheet sheet =wb.getWorksheets().get(0);

??????? //創(chuàng)建字體

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);//設(shè)置批注是否隱藏

range.getComment().getFill().customPicture("D:\\Desktop\\Image.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);

??????? //保存結(jié)果文檔

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:\\Desktop\\AddComments.xlsx");

??????? //獲取工作表

Worksheet sheet = wb.getWorksheets().get(0);

??????? //獲取指定單元格中的批注,設(shè)置新的批注文本、填充色

sheet.getRange().get("G3").getComment().setText("個人使用");

??????? sheet.getRange().get("G7").getComment().setText("團隊使用");

??????? //保存文檔

wb.saveToFile("output/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 ReadComments {

??? public static void main(String[] args)throws IOException {

??????? //加載excel文檔

Workbook wb =new Workbook();

??????? wb.loadFromFile("D:\\Desktop\\AddComments.xlsx");

??????? //獲取工作表

Worksheet sheet = wb.getWorksheets().get(0);

??????? //打印指定單元格的文本批注內(nèi)容

System.out.println("G3的批注文本= "+ sheet.getCellRange("G3").getComment().getText());

??????? System.out.println("G7的批注文本= "+ sheet.getCellRange("G7").getComment().getRichText().getRtfText());

??????? //獲取指定單元格中批注背景顏色

Color color = sheet.getRange().get("G3").getComment().getFill().getForeColor();

??????? System.out.print(color);

??????? //獲取指定單元格中的批注背景圖片

BufferedImage image = sheet.getRange().get("G3").getComment().getFill().getPicture();

??????? ImageIO.write(image,"png",new File("output/ExtractedImage.png"));

??? }

}

批注讀取效果:


【示例4】復(fù)制批注

import com.spire.xls.*;

import java.awt.*;

import java.awt.image.BufferedImage;

public class CopyComments {

??? public static void main(String[] args) {

??????? //加載Excel文檔

Workbook wb =new Workbook();

??????? wb.loadFromFile("D:\\Desktop\\AddComments.xlsx");

??????? //獲取指定工作表

Worksheet sheet = wb.getWorksheets().get(0);

??????? //獲取源單元格批注內(nèi)容

CellRange range = sheet.getRange().get("G3");//獲取指定單元格

String commenttext = range.getComment().getText();//獲取批注文本

BufferedImage image? = range.getComment().getFill().getPicture();//獲取批注填充圖片

// Object object = range.getComment().getFill().getForeColor();//獲取批注填充色

??????? //獲取新的單元格,添加批注文本和圖片(顏色)填充

CellRange range1 = sheet.getRange().get("G12");

??????? range1.getComment().setText(commenttext);

??????? range1.getComment().getFill().customPicture(image," ");

??????? //range1.getComment().getFill().setForeColor((Color) object);

??????? //保存文檔

wb.saveToFile("output/CopyComment.xlsx",ExcelVersion.Version2013);

??????? wb.dispose();

??? }

}

批注復(fù)制效果:


【示例5】刪除批注

import com.spire.xls.ExcelVersion;

import com.spire.xls.FileFormat;

import com.spire.xls.Workbook;

import com.spire.xls.Worksheet;

public class DeleteComments {

??? public static void main(String[] args) {

??????? //加載Excel文檔

Workbook wb =new Workbook();

??????? wb.loadFromFile("D:\\Desktop\\AddComments.xlsx");

??????? //獲取工作表

Worksheet sheet = wb.getWorksheets().get(0);

??????? //獲取指定單元格中的批注,并刪除

sheet.getRange().get("G3").getComment().remove();

??????? //保存文檔

wb.saveToFile("output/DeleteComment.xlsx", ExcelVersion.Version2013);

??????? wb.dispose();

??? }

}

批注刪除效果:

(本文完)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容