JXLS:根据表达式内容为线条着色

JXLS: Colorize a line dependent on the expressions content

我是 JXLS 的初学者。我读了 Documentation for formulas 但卡住了。

让我们以他们的员工为例:

当一名员工的收入超过 2000 美元(列 "payment",变量 "employee.payment")时,我想将整行涂成绿色。

在文档示例中:

我想将第 5、6 和 8 行涂成绿色。

这可能吗?如果是,如何?使用评论命令?或者我需要 java 代码吗?我没有要显示的代码,因为它很大而且不是我写的,所以我对它不是很熟悉。所以为了这个问题,我们可以看看纪录片代码。我的也差不多。

Area xlsArea;
Context context;
// construct XLS Area and set it into xlsArea var
// ...
// fill in context var with data
// ...
// apply XLS Area at A1 cell of 'Result' sheet
xlsArea.applyAt(new CellRef("Result!A1"), context);
// process area formulas
xlsArea.processFormulas();
// save excel output
// ...

编辑:

根据 Leonids 使用 if-else 结构的建议,我现在通过在下面放置一个额外的 "cheat line" 来实现这个工作,它具有所需的颜色:

但我现在面临一个问题:查看员工示例,我可以有 10 个,但也有 1000 个 - 我根本不知道,数据是动态的。那么就会发生这种情况:

我的"cheat line"出现在第23行,这是个问题...... 因为我可能有 100 万名员工,所以我不能把它放在下面足够远的地方,当数据太多时,那条线总是会出现在结果中。

在 Jxls-2 中实现行高亮的方法主要有两种。

一种是使用if-command and another one is to use AreaListener.

您可以找到使用 if-command for row highlighting in EachIfCommandDemo in jxls-demo 项目的示例。

您可以找到使用 AreaListener for cell highlighting in AreaListenerDemo 的示例。