Группировка и расгруппировка строк и столбцов
Введение
В файле Microsoft Excel можно создать контур для данных, чтобы можно было показать и скрыть уровни детализации одним щелчком мыши.
Щелкните на Символы сводки, 1,2,3, + и -, чтобы быстро отобразить только строки или столбцы, которые предоставляют сводки или заголовки для разделов в листе, или можно использовать символы, чтобы увидеть детали под отдельной сводкой или заголовком, как показано ниже на рисунке:
Группировка строк и столбцов
Управление группировкой строк и столбцов
Aspose.Cells предоставляет класс Workbook, который представляет файл Microsoft Excel. Класс Workbook содержит коллекцию Worksheets, которая позволяет получить доступ к каждой рабочей книге в файле Excel. Рабочий лист представлен классом Worksheet. Класс Worksheet предоставляет коллекцию Cells, которая представляет все ячейки в рабочем листе.
Коллекция Cells предоставляет несколько методов для управления строками или столбцами в рабочем листе, несколько из которых обсуждаются ниже более подробно.
Группировка строк и столбцов
Возможна группировка строк или столбцов, вызывая методы groupRows и groupColumns коллекции Cells. Оба метода принимают следующие параметры:
- Индекс первой строки/столбца в группе.
- Индекс последней строки/столбца в группе.
- Скрыто, логический параметр, указывающий, нужно ли скрыть строки/столбцы после группировки.
// 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.getSharedDataDir(GroupingRowsandColumns.class) + "RowsAndColumns/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "Book1.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
Cells cells = worksheet.getCells(); | |
// Grouping first six rows (from 0 to 5) and making them hidden by | |
// passing true | |
cells.groupRows(0, 5, true); | |
// Grouping first three columns (from 0 to 2) and making them hidden by | |
// passing true | |
cells.groupColumns(0, 2, true); | |
// Setting SummaryRowBelow property to false | |
worksheet.getOutline().setSummaryRowBelow(true); | |
// Setting SummaryColumnRight property to false | |
worksheet.getOutline().setSummaryColumnRight(true); | |
// Saving the modified Excel file in default (that is Excel 2003) format | |
workbook.save(dataDir + "GroupingRowsandColumns_out.xlsx"); |
Настройки группировки
Microsoft Excel также позволяет настроить параметры группировки для отображения:
- Сводные строки под деталями.
- Сводки столбцов справа от деталей.
Настройки группировки
Возможно настроить эти параметры группировки, используя свойство Outline класса Worksheet.
Сводки строк ниже деталей
Разработчики могут управлять отображением сводных строк под деталями, используя метод SummaryRowBelow класса Outline.
// 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.getSharedDataDir(SummaryRowBelow.class) + "RowsAndColumns/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "book1.xls"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
Cells cells = worksheet.getCells(); | |
// Grouping first six rows (from 0 to 5) and making them hidden by passing true | |
cells.groupRows(0, 5, true); | |
// Grouping first three columns (from 0 to 2) and making them hidden by passing true | |
cells.groupColumns(0, 2, true); | |
// Setting SummaryRowBelow property to false | |
worksheet.getOutline().setSummaryRowBelow(false); | |
// Saving the modified Excel file in default (that is Excel 2003) format | |
workbook.save(dataDir + "SummaryRowBelow_out.xls"); |
Итоговые столбцы справа от деталей
Возможно управлять отображением сводных столбцов справа от деталей с помощью метода SummaryColumnRight класса Outline.
// 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.getSharedDataDir(SummaryRowRight.class) + "RowsAndColumns/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "BookStyles.xls"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
Cells cells = worksheet.getCells(); | |
// Grouping first six rows (from 0 to 5) and making them hidden by passing true | |
cells.ungroupRows(0, 5); | |
// Grouping first three columns (from 0 to 2) and making them hidden by passing true | |
cells.ungroupColumns(0, 2); | |
// Saving the modified Excel file in default (that is Excel 2003) format | |
workbook.save(dataDir + "SummaryRowRight_out.xls"); |
Отмена группировки строк и столбцов
Разгруппируйте объединенные строки или столбцы, вызвав методы UngroupRows и UngroupColumns коллекции Cells. Оба метода принимают одинаковые параметры:
- Индекс первой строки/столбца, которую нужно разгруппировать.
- Индекс последней строки/столбца, которую нужно разгруппировать.
// 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.getSharedDataDir(UngroupingRowsandColumns.class) + "rows_cloumns/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "BookStyles.xls"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
Cells cells = worksheet.getCells(); | |
// Grouping first six rows (from 0 to 5) and making them hidden by | |
// passing true | |
cells.ungroupRows(0, 5); | |
// Grouping first three columns (from 0 to 2) and making them hidden by | |
// passing true | |
cells.ungroupColumns(0, 2); | |
// Saving the modified Excel file in default (that is Excel 2003) format | |
workbook.save(dataDir + "UngroupingRowsandColumns_out.xls"); | |
// Print message | |
System.out.println("Rows and Columns ungrouped successfully."); |