Применение условного форматирования в рабочих листах

Работа с условным форматированием

Эта статья разбирает следующие задачи:

  1. Использование Aspose.Cells для применения условного форматирования на основе значения ячейки.
  2. Использование Aspose.Cells для применения условного форматирования на основе формулы.

Задача 1: Использование Aspose.Cells для применения условного форматирования на основе значения ячейки

  1. Скачайте и установите Aspose.Cells.zip:
    1. Скачать Aspose.Cells for Java.
    2. Распакуйте его на ваш компьютер для разработки. Все компоненты Aspose, установленные, работают в режиме оценки. Режим оценки не имеет временных ограничений и вносит в произведенные документы водяные знаки.
  2. Создайте проект. Создайте проект с помощью редактора Java, такого как Eclipse, или создайте простую программу с помощью текстового редактора.
  3. Добавьте путь класса. Чтобы установить Path класса с помощью Eclipse, выполните следующие шаги:
    1. Извлеките Aspose.Cells.jar и dom4j_1.6.1.jar из Aspose.Cells.zip.
    2. Установите classpath проекта в Eclipse:
      1. Выберите ваш проект в Eclipse, затем выберите Свойства в меню Проект.
      2. Выберите «Путь сборки Java» слева в диалоговом окне.
      3. На вкладке Библиотеки выберите Добавить JAR или Добавить внешние JAR, чтобы выбрать Aspose.Cells.jar и dom4j_1.6.1.jar и добавить их в пути сборки.
    3. Напишите приложение для вызова API компонентов Aspose. Или вы можете установить путь при запуске на командной строке в Windows.
  javac -classpath %classpath%;e:\Aspose.Cells.jar;  ClassName .javajava -classpath %classpath%;e:\Aspose.Cells.jar;  ClassName  
  1. Примените условное форматирование на основе значения ячейки. Ниже приведенный код, используемый компонентом для выполнения задачи. Он применяет условное форматирование к ячейке.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(ConditionalFormattingOnCellValue.class);
// Instantiating a Workbook object
Workbook workbook = new Workbook();
Worksheet sheet = workbook.getWorksheets().get(0);
// Adds an empty conditional formatting
int index = sheet.getConditionalFormattings().add();
FormatConditionCollection fcs = sheet.getConditionalFormattings().get(index);
// Sets the conditional format range.
CellArea ca = new CellArea();
ca.StartRow = 0;
ca.EndRow = 0;
ca.StartColumn = 0;
ca.EndColumn = 0;
fcs.addArea(ca);
// Sets condition formulas.
int conditionIndex = fcs.addCondition(FormatConditionType.CELL_VALUE, OperatorType.BETWEEN, "50", "100");
FormatCondition fc = fcs.get(conditionIndex);
fc.getStyle().setBackgroundColor(Color.getRed());
workbook.save(dataDir + "output.xls");

При выполнении вышеуказанного кода условное форматирование применяется к ячейке «A1» в первом рабочем листе выходного файла (output.xls). Условное форматирование, примененное к A1, зависит от значения ячейки. Если значение ячейки A1 находится между 50 и 100, цвет фона красный из-за примененного условного форматирования. Пожалуйста, посмотрите следующие скриншоты сгенерированного файла XLS.

Выходной файл Excel с A1 значением менее 50

todo:image_alt_text

Вывести файл Excel с A1 между 50 и 100

todo:image_alt_text

Задача 2: Использование Aspose.Cells для применения условного форматирования на основе формулы

  1. Применить условное форматирование в зависимости от формулы. Ниже приведен фактический код, используемый компонентом для выполнения задачи. Он применяет условное форматирование к “B3”.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(ConditionalFormattingBasedOnFormula.class);
// Instantiating a Workbook object
Workbook workbook = new Workbook();
Worksheet sheet = workbook.getWorksheets().get(0);
ConditionalFormattingCollection cfs = sheet.getConditionalFormattings();
int index = cfs.add();
FormatConditionCollection fcs = cfs.get(index);
// Sets the conditional format range.
CellArea ca = new CellArea();
ca = new CellArea();
ca.StartRow = 2;
ca.EndRow = 2;
ca.StartColumn = 1;
ca.EndColumn = 1;
fcs.addArea(ca);
// Sets condition formulas.
int conditionIndex = fcs.addCondition(FormatConditionType.EXPRESSION, OperatorType.NONE, "", "");
FormatCondition fc = fcs.get(conditionIndex);
fc.setFormula1("=IF(SUM(B1:B2)>100,TRUE,FALSE)");
fc.getStyle().setBackgroundColor(Color.getRed());
sheet.getCells().get("B3").setFormula("=SUM(B1:B2)");
sheet.getCells().get("C4").setValue("If Sum of B1:B2 is greater than 100, B3 will have RED background");
workbook.save(dataDir + "output.xls");

При выполнении вышеуказанного кода условное форматирование применяется к ячейке “B3” на первом листе выходного файла (output.xls). Применяемое условное форматирование зависит от формулы, которая вычисляет значение “B3” как сумму B1 & B2. Пожалуйста, ознакомьтесь со следующими скриншотами сгенерированного файла XLS.

Вывести файл Excel с значением B3 менее 100

todo:image_alt_text

Вывести файл Excel с B3 больше 100

todo:image_alt_text

Заключение