Java 添加、修改、读取、复制、删除Excel批注的实现
使用工具:FreeSpire.XLSforJava(免费版)
Jar文件获取及导入:
方法1:通过官方网站下载获取jar包。解压后将lib文件夹下的Spire.Xls.jar文件导入Java程序。(如下图)
方法2:通过maven仓库安装导入。具体安装详解参见此网页。
【示例1】添加批注
importcom.spire.xls.*; importjava.awt.*; publicclassAddComments{ publicstaticvoidmain(String[]args){ //加载Excel文档 Workbookwb=newWorkbook(); wb.loadFromFile("D:\\Desktop\\Sample.xlsx"); //获取工作表 Worksheetsheet=wb.getWorksheets().get(0); //创建字体 ExcelFontfont=wb.createFont(); font.setFontName("Arial"); font.setSize(11); font.setKnownColor(ExcelColors.Orange); ExcelFontfontBlue=wb.createFont(); fontBlue.setKnownColor(ExcelColors.LightBlue); ExcelFontfontGreen=wb.createFont(); fontGreen.setKnownColor(ExcelColors.LightGreen); //给指定的Excel单元格添加普通批注 CellRangerange=sheet.getCellRange("G3"); range.getComment().setText("正式员工"); range.getComment().setTextRotation(TextRotationType.TopToBottom); range.autoFitColumns(); range.getComment().setVisible(true);//设置批注是否隐藏 range.getComment().getFill().customPicture("D:\\Desktop\\Image.jpg");//背景图片填充 //range.getComment().getFill().setForeColor(newColor(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】修改批注
importcom.spire.xls.*; publicclassModifyComments{ publicstaticvoidmain(String[]args){ //加载excel文档 Workbookwb=newWorkbook(); wb.loadFromFile("D:\\Desktop\\AddComments.xlsx"); //获取工作表 Worksheetsheet=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(); } }
批注修改效果:
【示例3】读取批注
importcom.spire.xls.*; importjavax.imageio.ImageIO; importjava.awt.*;importjava.awt.image.BufferedImage; importjava.io.File; importjava.io.IOException; publicclassReadComments{ publicstaticvoidmain(String[]args)throwsIOException{ //加载excel文档 Workbookwb=newWorkbook(); wb.loadFromFile("D:\\Desktop\\AddComments.xlsx"); //获取工作表 Worksheetsheet=wb.getWorksheets().get(0); //打印指定单元格的文本批注内容 System.out.println("G3的批注文本="+sheet.getCellRange("G3").getComment().getText()); System.out.println("G7的批注文本="+sheet.getCellRange("G7").getComment().getRichText().getRtfText()); //获取指定单元格中批注背景颜色 Colorcolor=sheet.getRange().get("G3").getComment().getFill().getForeColor(); System.out.print(color); //获取指定单元格中的批注背景图片 BufferedImageimage=sheet.getRange().get("G3").getComment().getFill().getPicture(); ImageIO.write(image,"png",newFile("output/ExtractedImage.png")); } }
批注读取效果:
【示例4】复制批注
importcom.spire.xls.*; importjava.awt.*; importjava.awt.image.BufferedImage; publicclassCopyComments{ publicstaticvoidmain(String[]args){ //加载Excel文档 Workbookwb=newWorkbook(); wb.loadFromFile("D:\\Desktop\\AddComments.xlsx"); //获取指定工作表 Worksheetsheet=wb.getWorksheets().get(0); //获取源单元格批注内容 CellRangerange=sheet.getRange().get("G3");//获取指定单元格 Stringcommenttext=range.getComment().getText();//获取批注文本 BufferedImageimage=range.getComment().getFill().getPicture();//获取批注填充图片 //Objectobject=range.getComment().getFill().getForeColor();//获取批注填充色 //获取新的单元格,添加批注文本和图片(颜色)填充 CellRangerange1=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(); } }
批注复制效果:
【示例5】删除批注
importcom.spire.xls.ExcelVersion; importcom.spire.xls.FileFormat; importcom.spire.xls.Workbook; importcom.spire.xls.Worksheet; publicclassDeleteComments{ publicstaticvoidmain(String[]args){ //加载Excel文档 Workbookwb=newWorkbook(); wb.loadFromFile("D:\\Desktop\\AddComments.xlsx"); //获取工作表 Worksheetsheet=wb.getWorksheets().get(0); //获取指定单元格中的批注,并删除 sheet.getRange().get("G3").getComment().remove(); //保存文档 wb.saveToFile("output/DeleteComment.xlsx",ExcelVersion.Version2013); wb.dispose(); } }
批注删除效果:
JavaPOI设置Excel指定单元格添加批注、背景色
Cellcell=worksheet.getRow(row).getCell(column); Drawingdraw=worksheet.createDrawingPatriarch(); Commentcomment=draw.createCellComment(newXSSFClientAnchor(0,0,0,0,row,column,9,7)); comment.setString(newXSSFRichTextString(message));//设置批注内容 cell.setCellComment(comment); CellStylecellStyle=workbook.createCellStyle(); cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());//背景色 cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); cell.setCellStyle(cellStyle);
到此这篇关于Java添加、修改、读取、复制、删除Excel批注的实现的文章就介绍到这了,更多相关Java 添加删除Excel批注内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。