Установка условного форматирования файлов Excel и ODS
Введение
Условное форматирование — это расширенная функция, которая позволяет применять формат к ячейке или диапазону ячеек и автоматически изменять его в зависимости от значения ячейки или формулы. Например, ячейка отображается полужирной, только если значение ячейки больше 500. Когда значение ячейки соответствует условию, указанное форматирование применяется к ячейке. Если значение ячейки не соответствует условию, используется стандартное форматирование. В Microsoft Excel выберите Формат, затем Условное форматирование, чтобы открыть диалоговое окно условного форматирования.
Aspose.Cells поддерживает применение условного форматирования к ячейкам во время выполнения. В этой статье объясняется, как это сделать. Также объясняется, как рассчитать цвет, используемый Excel для условного форматирования по цветовой шкале.
Применение условного форматирования
Aspose.Cells поддерживает условное форматирование несколькими способами:
- Использование дизайнерской таблицы
- Использование метода копирования.
- Создание условного форматирования во время выполнения.
Использование дизайнерской таблицы
Разработчики могут создать дизайнерскую таблицу, содержащую условное форматирование в Microsoft Excel, а затем открыть эту таблицу с помощью Aspose.Cells. Aspose.Cells загружает и сохраняет дизайнерскую таблицу, сохраняя любые настройки условного форматирования.
Использование метода копирования
Aspose.Cells позволяет разработчикам копировать настройки условного форматирования из одной ячейки в другую на листе, вызывая метод Range.copy().
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Open a template Excel file | |
const workbook = new AsposeCells.Workbook(path.join(dataDir, "book1.xlsx")); | |
// Get the first worksheet in the workbook | |
const sheet = workbook.getWorksheets().get(0); | |
// Get the A1 cell | |
const cell = sheet.getCells().get("A1"); | |
// Get the conditional formatting result object | |
const cfr = cell.getConditionalFormattingResult(); | |
// Get the icon set | |
const icon = cfr.getConditionalFormattingIcon(); | |
// Create the image file based on the icon's image data | |
require("fs").writeFileSync(path.join(dataDir, "imgIcon.out.jpg"), icon.getImageData()); |
Применение условного форматирования во время выполнения
Aspose.Cells позволяет добавлять и удалять условное форматирование во время выполнения. В приведенных ниже примерах кода показано, как установить условное форматирование:
- Создайте рабочую книгу.
- Добавьте пустое условное форматирование.
- Укажите диапазон, к которому должно применяться форматирование.
- Определите условия форматирования.
- Сохраните файл.
После этого примера представлено еще несколько меньших примеров, показывающих, как применить настройки шрифта, настройки границ и узоры.
Microsoft Excel 2007 добавил более расширенное условное форматирование, которое также поддерживается Aspose.Cells. В примерах показано, как использовать простое форматирование, а в примерах Microsoft Excel 2007 — более продвинутое условное форматирование.
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
const filePath = path.join(dataDir, "Book1.xlsx"); | |
// Instantiating a Workbook object | |
const workbook = new AsposeCells.Workbook(); | |
const sheet = workbook.getWorksheets().get(0); | |
// Adds an empty conditional formatting | |
const index = sheet.getConditionalFormattings().getCount(); | |
const fcs = sheet.getConditionalFormattings().get(index); | |
// Sets the conditional format range. | |
let ca = AsposeCells.CellArea.createCellArea(0, 0, 0, 0); | |
fcs.addArea(ca); | |
ca = AsposeCells.CellArea.createCellArea(1, 1, 1, 1); | |
fcs.addArea(ca); | |
// Adds condition. | |
const conditionIndex = fcs.addCondition(AsposeCells.FormatConditionType.CellValue, AsposeCells.OperatorType.Between, "=A2", "100"); | |
// Adds condition. | |
const conditionIndex2 = fcs.addCondition(AsposeCells.FormatConditionType.CellValue, AsposeCells.OperatorType.Between, "50", "100"); | |
// Sets the background color. | |
const fc = fcs.get(conditionIndex); | |
fc.getStyle().setBackgroundColor(AsposeCells.Color.Red); | |
// Saving the Excel file | |
workbook.save(path.join(dataDir, "output.xls")); |
Установить шрифт
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Open a template Excel file | |
const workbook = new AsposeCells.Workbook(path.join(dataDir, "book1.xlsx")); | |
// Get the first worksheet in the workbook | |
const sheet = workbook.getWorksheets().get(0); | |
// Get the A1 cell | |
const cell = sheet.getCells().get("A1"); | |
// Get the conditional formatting result object | |
const cfr = cell.getConditionalFormattingResult(); | |
// Get the icon set | |
const icon = cfr.getConditionalFormattingIcon(); | |
// Create the image file based on the icon's image data | |
require("fs").writeFileSync(path.join(dataDir, "imgIcon.out.jpg"), icon.getImageData()); |
Установить границу
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Instantiating a Workbook object | |
const workbook = new AsposeCells.Workbook(); | |
const sheet = workbook.getWorksheets().get(0); | |
// Adds an empty conditional formatting | |
const index = sheet.getConditionalFormattings().add(); | |
const fcs = sheet.getConditionalFormattings().get(index); | |
// Sets the conditional format range. | |
const ca = AsposeCells.CellArea.createCellArea(0, 0, 5, 3); | |
fcs.addArea(ca); | |
// Adds condition. | |
const conditionIndex = fcs.addCondition(AsposeCells.FormatConditionType.CellValue, AsposeCells.OperatorType.Between, "50", "100"); | |
// Sets the background color. | |
const fc = fcs.get(conditionIndex); | |
fc.getStyle().getBorders().get(AsposeCells.BorderType.LeftBorder).setLineStyle(AsposeCells.CellBorderType.Dashed); | |
fc.getStyle().getBorders().get(AsposeCells.BorderType.RightBorder).setLineStyle(AsposeCells.CellBorderType.Dashed); | |
fc.getStyle().getBorders().get(AsposeCells.BorderType.TopBorder).setLineStyle(AsposeCells.CellBorderType.Dashed); | |
fc.getStyle().getBorders().get(AsposeCells.BorderType.BottomBorder).setLineStyle(AsposeCells.CellBorderType.Dashed); | |
fc.getStyle().getBorders().get(AsposeCells.BorderType.LeftBorder).setColor(new AsposeCells.Color(0, 255, 255)); | |
fc.getStyle().getBorders().get(AsposeCells.BorderType.RightBorder).setColor(new AsposeCells.Color(0, 255, 255)); | |
fc.getStyle().getBorders().get(AsposeCells.BorderType.TopBorder).setColor(new AsposeCells.Color(0, 255, 255)); | |
fc.getStyle().getBorders().get(AsposeCells.BorderType.BottomBorder).setColor(new AsposeCells.Color(255, 255, 0)); | |
workbook.save(path.join(dataDir, "output.xlsx")); |
Установить узор
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Instantiating a Workbook object | |
const workbook = new AsposeCells.Workbook(); | |
const sheet = workbook.getWorksheets().get(0); | |
// Adds an empty conditional formatting | |
const index = sheet.getConditionalFormattings().add(); | |
const fcs = sheet.getConditionalFormattings().get(index); | |
// Sets the conditional format range. | |
const ca = AsposeCells.CellArea.createCellArea(0, 0, 5, 3); | |
fcs.addArea(ca); | |
// Adds condition. | |
const conditionIndex = fcs.addCondition(AsposeCells.FormatConditionType.CellValue, AsposeCells.OperatorType.Between, "50", "100"); | |
const fc = fcs.get(conditionIndex); | |
fc.getStyle().setPattern(AsposeCells.BackgroundType.ReverseDiagonalStripe); | |
fc.getStyle().setForegroundColor(new AsposeCells.Color(255, 255, 0)); | |
fc.getStyle().setBackgroundColor(new AsposeCells.Color(0, 255, 255)); | |
workbook.save(path.join(dataDir, "output.xlsx")); |
Продвинутые темы
- Добавление условных форматирований 2-цветной шкалы и 3-цветной шкалы
- Применение условного форматирования в рабочих листах
- Применение заливки для чередующихся строк и столбцов с условным форматированием
- Генерировать изображения условного форматирования столбчатых диаграмм данных
- Получить наборы значков, столбчатые диаграммы данных или объекты цветовой шкалы, используемые в условном форматировании