Carina-baby

Java 如何高亮 Excel 中低于或高于平均值的单元格

如果您想查找高于或低于平均值的数字,可以不必计算该平均值,就能查看更高或更低的值。通过Java应用程序,可以自动突出显示这些数字。除了快速突出显示高于或低于平均值的值外,您还可以查看高于或低于的值的个数。现在让我们看看如何在 Java应用程序中实现此操作。

引入jar包

导入方法1:

手动引入。将 Free Spire.XLS for Java 下载到本地,解压,找到lib文件夹下的Spire.Xls.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:

导入方法2:如果您想通过 Maven安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

高亮 Excel 中低于或高于平均值的单元格

根据以下步骤操作,您可以轻松高亮 Excel 中低于或高于平均值的单元格。

  • 创建一个Workbook对象。

  • 使用 Workbook.loadFromFile() 方法加载 Excel 文件。

  • 使用 Workbook.getWorksheets.get(index) 方法从工作簿中获取特定工作表。

  • 使用 Worksheet.getConditionalFormats().add() 方法向工作表添加条件格式并返回 XlsConditionalFormats 类的对象。

  • 使用 XlsConditionalFormats.AddRange() 方法设置将应用条件格式的单元格范围。

  • 使用 XlsConditionalFormats.addAverageCondition() 方法添加Average条件,将AverageType指定为大于,并将满足条件的单元格的背景颜色更改为黄色。 

  • 添加另一个Average条件,将包含低于平均值的单元格的背景颜色更改为粉色。

  • 使用 Workbook.saveToFile() 方法将工作簿保存到 Excel 文件。

完整代码

Java

import com.spire.xls.AverageType;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.core.IConditionalFormat;
import com.spire.xls.core.spreadsheet.collections.XlsConditionalFormats;

import java.awt.*;

public class HighlightValuesAboveAndBelowAverage {

    public static void main(String[] args) {

        //创建一个Workbook对象
        Workbook workbook = new Workbook();

        //加载 Excel 文件
        workbook.loadFromFile("测试文档.xlsx");

        //获取特定工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        //向工作表添加条件格式
        XlsConditionalFormats format = sheet.getConditionalFormats().add();

        //设置将应用条件格式的单元格范围
        format.addRange(sheet.getRange().get("F2:F12"));

        //添加条件以突出显示所有大于平均值的单元格
        IConditionalFormat condition1 = format.addAverageCondition(AverageType.Above);
        condition1.setBackColor(Color.yellow);

        //添加条件以突出显示所有小于平均值的单元格
        IConditionalFormat condition2 = format.addAverageCondition(AverageType.Below);
        condition2.setBackColor(Color.pink);

        //获取低于平均值的值的计数
        sheet.getRange().get("F15").setFormula("=COUNTIF(F2:F12,\"<\"&AVERAGE(F2:F12))");

        //获取高于平均值的值的计数
        sheet.getRange().get("F16").setFormula("=COUNTIF(F2:F12,\">\"&AVERAGE(F2:F12))");

        //将工作簿保存到 Excel 文件
        workbook.saveToFile("输出结果.xlsx", ExcelVersion.Version2016);
    }
}

效果图

—本文完—

posted on 2023-01-29 11:46  Carina-baby  阅读(257)  评论(0编辑  收藏  举报

导航