Управление диапазонами

Введение

В Excel можно выбрать несколько ячеек с помощью выделения мышью, набор выбранных ячеек называется “Диапазон”.

Например, вы можете щелкнуть левой кнопкой мыши в ячейке “A1” в Excel, а затем перетащить в ячейку “C4”. Прямоугольная область, которую вы выбрали, также легко создается в виде объекта с помощью Aspose.Cells.

Вот как создать диапазон, установить значение, установить стиль и выполнить другие операции с объектом “Диапазон”.

Управление диапазонами с использованием Aspose.Cells

Aspose.Cells предоставляет класс Workbook, который представляет файл Microsoft Excel. Класс Workbook содержит коллекцию Worksheets, которая позволяет получить доступ к каждому листу в файле Excel. Лист представлен классом Worksheet. Класс Worksheet предоставляет коллекцию Cells.

Создать диапазон

Когда вы хотите создать прямоугольную область, расширяющуюся на A1:C4, вы можете использовать следующий код:

//Create a Workbook
Workbook workbook = new Workbook();
//Get Cells
Cells cells = workbook.getWorksheets().get(0).getCells();
//Create Range
Range range = cells.createRange("A1:C4");

Поместить значение в ячейки диапазона

Предположим, что у вас есть диапазон ячеек, который расширяется от A1 до C4. Матрица состоит из 4 * 3 = 12 ячеек. Отдельные ячейки диапазона упорядочены последовательно: Диапазон[0,0], Диапазон[0,1], Диапазон[0,2], Диапазон[1,0], Диапазон[1,1], Диапазон[1,2], Диапазон[2,0], Диапазон[2,1], Диапазон[2,2], Диапазон[3,0], Диапазон[3,1], Диапазон[3,2].

В следующем примере показано, как ввести некоторые значения в ячейки диапазона.

//Create a Workbook
Workbook workbook = new Workbook();
//Get Cells
Cells cells = workbook.getWorksheets().get(0).getCells();
//Create Range
Range range = cells.createRange("A1:C4");
//Put value
range.get(0, 0).putValue("A1");
range.get(0, 1).putValue("B1");
range.get(0, 2).putValue("C1");
range.get(3, 0).putValue("A4");
range.get(3, 1).putValue("B4");
range.get(3, 2).putValue("C4");
//Save the Workbook
workbook.save("RangeValueTest.xlsx");

Установить стиль ячеек диапазона

В следующем примере показано, как установить стиль ячеек диапазона.

//Create a Workbook
Workbook workbook = new Workbook();
//Get Cells
Cells cells = workbook.getWorksheets().get(0).getCells();
//Create Range
Range range = cells.createRange("A1:C4");
//Put value
range.get(0, 0).putValue("A1");
range.get(3, 2).putValue("C4");
//Set Style
Style style00 = workbook.createStyle();
style00.setPattern(BackgroundType.SOLID);
style00.setForegroundColor(Color.getRed());
range.get(0, 0).setStyle(style00);
Style style32 = workbook.createStyle();
style32.setPattern(BackgroundType.HORIZONTAL_STRIPE);
style32.setForegroundColor(Color.getGreen());
style32.setBackgroundColor(Color.getRed());
range.get(3, 2).setStyle(style32);
//Save the Workbook
workbook.save("RangeStyleTest.xlsx");

Получить текущий регион диапазона

CurrentRegion - это свойство, которое возвращает объект Range, представляющий текущий регион.

Текущий регион - это диапазон, ограниченный любой комбинацией пустых строк и столбцов. Только для чтения.

В Excel вы можете получить область CurrentRegion следующим образом:

  1. Выделите область (range1) с помощью мыши.
  2. Нажмите “Домой - Правка - Поиск и выбор - Перейти к специальному - Текущий регион”, или используйте “Ctrl+Shift+*”, теперь вы увидите, что Excel автоматически помогает вам выбрать область (range2), теперь вы сделали это, range2 - это CurrentRegion range1.

Используя Aspose.Cells, вы можете использовать свойство “Range.CurrentRegion” для выполнения той же функции.

Пожалуйста, загрузите следующий тестовый файл, откройте его в Excel, используйте мышь, чтобы выбрать область “A1:D7”, затем нажмите “Ctrl+Shift+*”, вы увидите, что область “A1:C3” выбрана.

current_region.xlsx

Теперь запустите следующий пример, посмотрите, как это работает в Aspose.Cells:

//Create a Workbook
Workbook workbook = new Workbook("current_region.xlsx");
//Get Cells
Cells cells = workbook.getWorksheets().get(0).getCells();
//Create Range
Range src = cells.createRange("A1:D7");
//Get CurrentRegion
Range A1C3 = src.getCurrentRegion();

Продвинутые темы