zoukankan      html  css  js  c++  java
  • 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();
        }
    }

    批注删除结果:

    (本文完)

  • 相关阅读:
    composer npm bower 版本依赖符号说明
    FastAdmin 速极后台框架从 v1.0 到 v1.2 的数据库升级
    FastAdmin 也可以出书了
    FastAdmin 开发时用到的 Git 命令 (2020-09-26)
    FastAdmin用什么弹窗组件
    笔记:Linux 文件权限
    笔记:使用源代码在 Centos 7 安装 Git 2
    php gd 生成表格 图片
    easyui datagrid 清空
    mysql 去重
  • 原文地址:https://www.cnblogs.com/Yesi/p/12214699.html
Copyright © 2011-2022 走看看