簡體   English   中英

JXLS 2.0 條件格式論壇未按行更新

[英]JXLS 2.0 Conditional Formatting Forumla not updated per row

嘗試創建一個 JXLS excel 模板,應該可以將條件格式從特定行的單元格復制到下一個生成的行。

在模板中,我創建了我的格式。 如果單元格中的值等於“是”,則該行應為紅色。

模板在此處輸入圖像描述

條件格式

Formula: =$B2="yes"
Applies to: $A$2:$B$2

在此處輸入圖像描述

我知道這個公式適用於已經填充的 excel 表這是一個示例https://trumpexcel.com/highlight-rows-based-on-cell-value/

但是,當我使用 excel 模板和 JXLS 2.0 執行此操作時,它會失敗。 它將公式原樣復制到每個新生成的行。 因此,現在不再是整個工作表的一個條件,而是與行一樣多。 這里的問題是它會按原樣復制它,這意味着每個條件中的公式將基於單元格 C2 中的值。 因此,即使單元格 C3 生成的值為“no”,它也會顯示為紅色,因為它基於 C2 中的值。

Output excel 在此處輸入圖像描述

條件格式 output excel 在此處輸入圖像描述

有關如何直接在模板中解決此問題的任何提示?

使用jxls 2.9.0 jxls-poi 2.9.0

一種方法是修改模板中的公式以達到我們想要的效果。

公式: =INDIRECT("$B" & ROW())="yes"

描述:

  1. ROW()返回當前行號。
  2. "$B" & ROW()給出單元格引用。 例如,在第 5 行,我們將得到B5
  3. 最后,使用INDIRECT(...)我們在單元格引用處獲取值並檢查是否為“是”。

Output excel: 在此處輸入圖像描述

您遇到的是標准 Excel 行為。 為了實現您想要的,您有 2 個選項:使用常規范圍或動態表。 我會使用后者。

使用常規范圍

您需要從至少 2 行開始,如下所示:
在此處輸入圖像描述
然后只在第一行之后和最后一行之前插入行。 從來沒有在第一個或最后一個之后。 新行采用相同的格式,因為基礎范圍正在擴大。 例如,在中間插入 4 行會導致:
在此處輸入圖像描述

使用動態表

假設您有標題(您不需要),您 select 您的起始范圍,然后將其格式化為表格:
在此處輸入圖像描述
您可以通過將出現的對話框中的復選框來選擇表格是否有標題。

然后添加相同的條件格式: 在此處輸入圖像描述

現在不同的是,當您添加新行時,條件格式會自動展開。 表格本身會自動擴展,因此其他所有內容(格式、驗證、公式等)都會隨之擴展。

只需確保您在File/Options/Proofing/AutoCorrect Options/AutoFormat As You Type/Include new rows and columns in table下為表格啟用了自動擴展選項。 您也可以以編程方式執行此操作(我知道在 VBA 中您需要將Application.AutoCorrect.AutoExpandListRange設置為 True)。 順便說一句,默認值為 True。

無論您的表格有多大,您都會擴展格式。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM