Применение итоговой строки и изменение направления итоговых строк справа от детальной
Эта статья объяснит, как применить итоговую строку к данным и изменить направление итоговых строк ниже детали.
Вы можете применить итоговую строку к данным, используя метод Worksheet.Cells.subtotal(). Он принимает следующие параметры.
- CellArea - Диапазон, на котором применяется промежуточный итог
- GroupBy - Поле для группировки по нулевому индексу
- Function - Функция промежуточного итога
- TotalList - Массив смещений нулевого индекса, указывающий на поля, к которым добавляются итоги
- Replace - Указывает, нужно ли заменить текущие промежуточные итоги
- PageBreaks - Указывает, нужно ли добавить разрыв страницы между группами
- SummaryBelowData - Указывает, нужно ли добавить итоги ниже данных
Также вы можете управлять направлением строк сводной информации ниже деталей с помощью свойства Worksheet.getOutline().SummaryRowBelow, как показано на следующем скриншоте. Вы можете открыть эту настройку в Microsoft Excel, используя Данные > Сводка > Настройки
Пример
Сравнение скриншотов исходных и выходных файлов
На следующем скриншоте показан исходный файл Excel, используемый в приведенном ниже образцовом коде, содержащий некоторые данные в столбцах A и B.
На следующем скриншоте показан созданный примером кода файл Excel. Как видно, промежуточный итог применен к диапазону A2:B11, и направление сводной информации подробно описано.
Код на Java для применения промежуточного итога и изменения направления сводной информации ниже деталей
Вот пример кода для достижения указанного выше результата.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//directories | |
String sourceDir = Utils.Get_SourceDirectory(); | |
String outputDir = Utils.Get_OutputDirectory(); | |
// Create workbook from source Excel file | |
Workbook workbook = new Workbook(sourceDir + "SampleSubtotal.xlsx"); | |
// Access the first worksheet | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Get the Cells collection in the first worksheet | |
Cells cells = worksheet.getCells(); | |
// Create a cellarea i.e.., A2:B11 | |
CellArea ca = CellArea.createCellArea("A2", "B11"); | |
// Apply subtotal, the consolidation function is Sum and it will applied to | |
// Second column (B) in the list | |
cells.subtotal(ca, 0, ConsolidationFunction.SUM, new int[] { 1 }, true, false, true); | |
// Set the direction of outline summary | |
worksheet.getOutline().setSummaryRowBelow(true); | |
// Save the excel file | |
workbook.save(outputDir + "ASubtotal_out.xlsx"); |