Gruppo e Ungruppo di righe e colonne con C++
Introduzione
In un file Microsoft Excel, è possibile creare un’outline per i dati che consente di mostrare e nascondere livelli di dettaglio con un singolo clic del mouse.
Fare clic sui Simboli di Riepilogo, 1,2,3, + e - per visualizzare rapidamente solo le righe o colonne che forniscono riepiloghi o intestazioni per sezioni in un foglio di lavoro, oppure è possibile utilizzare i simboli per vedere i dettagli sotto un riepilogo o intestazione individuale come mostrato di seguito nella figura:
Raggruppamento di Righe e Colonne |
---|
![]() |
Gestione gruppi di righe e colonne
Aspose.Cells fornisce una classe, Workbook che rappresenta un file Microsoft Excel. La classe Workbook contiene un WorksheetCollection che consente l’accesso a ciascun foglio di lavoro nel file Excel. Un foglio di lavoro è rappresentato dalla classe Worksheet. La classe Worksheet fornisce una collezione Cells che rappresenta tutte le celle nel foglio di lavoro.
La raccolta Cells fornisce diversi metodi per gestire righe o colonne in un foglio di lavoro, alcuni di questi sono discussi di seguito in modo più dettagliato.
Raggruppamento di Righe e Colonne
È possibile raggruppare righe o colonne chiamando i metodi GroupRows e GroupColumns della raccolta Cells. Entrambi i metodi prendono i seguenti parametri:
- Indice della prima riga/colonna, la prima riga o colonna nel gruppo.
- Indice dell’ultima riga/colonna, l’ultima riga o colonna nel gruppo.
- È nascosto, un parametro booleano che specifica se nascondere o meno righe/colonne dopo il raggruppamento.
#include <iostream>
#include <memory>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"book1.xls";
// Create workbook from file
Workbook workbook(inputFilePath);
// Access the first worksheet in the Excel file
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Group first six rows (from 0 to 5) and make them hidden
worksheet.GetCells().GroupRows(0, 5, true);
// Group first three columns (from 0 to 2) and make them hidden
worksheet.GetCells().GroupColumns(0, 2, true);
// Save the modified Excel file
U16String outputFilePath = srcDir + u"output.xls";
workbook.Save(outputFilePath);
std::cout << "Rows and columns grouped successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Impostazioni di raggruppamento
Microsoft Excel consente di configurare le impostazioni di raggruppamento per la visualizzazione:
- Le righe di riassunto sotto il dettaglio.
- Le colonne di riepilogo a destra del dettaglio.
Gli sviluppatori possono configurare queste impostazioni di gruppo utilizzando la proprietà GetOutline() della classe Worksheet.
Riepiloghi delle Righe al di Sotto del Dettaglio
È possibile controllare se le righe di riepilogo vengono visualizzate sotto i dettagli impostando la proprietà GetSummaryRowBelow() della classe Outline su true o false.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"sample.xlsx";
// Path of output Excel file
U16String outputFilePath = outDir + u"output.xls";
// Create workbook
Workbook workbook(inputFilePath);
// Get the first worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Grouping first six rows and first three columns
worksheet.GetCells().GroupRows(0, 5, true);
worksheet.GetCells().GroupColumns(0, 2, true);
// Setting SummaryRowBelow property to false
worksheet.GetOutline().SetSummaryRowBelow(false);
// Save the modified Excel file
workbook.Save(outputFilePath);
std::cout << "Excel file modified and saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Colonne sommario a destra dei dettagli
I developer possono anche controllare la visualizzazione delle colonne riepilogative a destra dei dettagli impostando la proprietà GetSummaryColumnRight() della classe Outline su true o false.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"sample.xlsx";
// Path of output Excel file
U16String outputFilePath = outDir + u"output.xls";
// Create workbook
Workbook workbook(inputFilePath);
// Get the first worksheet
WorksheetCollection sheets = workbook.GetWorksheets();
Worksheet worksheet = sheets.Get(0);
// Grouping first six rows and first three columns
worksheet.GetCells().GroupRows(0, 5, true);
worksheet.GetCells().GroupColumns(0, 2, true);
// Set summary column to the right
worksheet.GetOutline().SetSummaryColumnRight(true);
// Save the modified Excel file
workbook.Save(outputFilePath);
std::cout << "Excel file modified and saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Separazione delle righe e delle colonne
Per annullare il raggruppamento di qualsiasi riga o colonna raggruppata, chiamare i metodi UngroupRows e UngroupColumns della collezione Cells. Entrambi i metodi richiedono due parametri:
- Indice della prima riga o colonna, la prima riga/colonna da sraggruppare.
- Indice dell’ultima riga o colonna, l’ultima riga/colonna da sraggruppare.
UngroupRows ha un sovraccarico che richiede un terzo parametro booleano. Impostandolo su true si rimuovono tutte le informazioni raggruppate. In caso contrario, viene rimossa solo l’informazione esterna del gruppo.
#include <iostream>
#include <memory>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"book1.xls";
// Create workbook from the input file
Workbook workbook(inputFilePath);
// Access the first worksheet in the Excel file
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Ungrouping first six rows (from 0 to 5)
worksheet.GetCells().UngroupRows(0, 5);
// Ungrouping first three columns (from 0 to 2)
worksheet.GetCells().UngroupColumns(0, 2);
// Save the modified Excel file
U16String outputFilePath = srcDir + u"output.xls";
workbook.Save(outputFilePath);
Aspose::Cells::Cleanup();
return 0;
}