Plages nommées

Création d’une plage nommée

Utilisation de Microsoft Excel

Les étapes suivantes décrivent comment nommer une cellule ou une plage de cellules à l’aide de Microsoft Excel. Cette méthode s’applique à Microsoft Office Excel 2003, Microsoft Excel 97, 2000 et 2002.

  1. Sélectionnez la cellule ou la plage de cellules que vous souhaitez nommer.
  2. Cliquez sur la zone de nom à l’extrémité gauche de la barre de formule.
  3. Saisissez le nom des cellules.
  4. Appuyez sur ENTRÉE.

Utilisation d’Aspose.Cells

Ici, nous utilisons l’API Aspose.Cells pour effectuer la tâche.

Aspose.Cells fournit une classe, Workbook, qui représente un fichier Microsoft Excel. La classe Workbook contient une collection WorksheetCollection qui permet d’accéder à chaque feuille de calcul dans un fichier Excel. Une feuille de calcul est représentée par la classe Worksheet. La classe Worksheet fournit une collection Cells.

Il est possible de créer une plage nommée en appelant la méthode surchargée createRange de la collection Cells. Une version typique de la méthode createRange prend les paramètres suivants :

  • Nom de la cellule supérieure gauche, le nom de la cellule supérieure gauche dans la plage.
  • Nom de la cellule inférieure droite, le nom de la cellule inférieure droite de la plage.

Lorsque la méthode createRange est appelée, elle renvoie la plage nommée nouvellement créée en tant qu’instance de la classe Range.

L’exemple suivant montre comment créer une plage nommée de cellules s’étendant sur B4:G14.

// 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(CreateNamedRangeofCells.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
WorksheetCollection worksheets = workbook.getWorksheets();
// Accessing the first worksheet in the Excel file
Worksheet sheet = worksheets.get(0);
Cells cells = sheet.getCells();
// Creating a named range
Range namedRange = cells.createRange("B4", "G14");
namedRange.setName("TestRange");
// Saving the modified Excel file in default (that is Excel 2000) format
workbook.save(dataDir + "CNROfCells_out.xls");
// Print message
System.out.println("Process completed successfully");

Accès à toutes les plages nommées dans une feuille de calcul

Appelez la méthode getNamedRanges de la collection WorksheetCollection pour obtenir toutes les plages nommées dans une feuille de calcul. La méthode getNamedRanges renvoie un tableau de toutes les plages nommées dans la collection WorksheetCollection.

L’exemple suivant montre comment accéder à toutes les plages nommées dans un classeur.

// 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(AccessAllNamedRanges.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
WorksheetCollection worksheets = workbook.getWorksheets();
// Accessing the first worksheet in the Excel file
Worksheet sheet = worksheets.get(0);
Cells cells = sheet.getCells();
// Getting all named ranges
Range[] namedRanges = worksheets.getNamedRanges();
// Print message
System.out.println("Number of Named Ranges : " + namedRanges.length);

Accéder à une plage nommée spécifique

Appelez la méthode getRangeByName de la collection WorksheetCollection pour obtenir une plage spécifiée par son nom. Une méthode typique getRangeByName prend le nom de la plage nommée et renvoie la plage nommée spécifiée en tant qu’instance de la classe Range.

L’exemple suivant montre comment accéder à une plage spécifiée par son nom.

// 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(AccessSpecificNamedRange.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
WorksheetCollection worksheets = workbook.getWorksheets();
// Accessing the first worksheet in the Excel file
Worksheet sheet = worksheets.get(0);
Cells cells = sheet.getCells();
// Getting the specified named range
Range namedRange = worksheets.getRangeByName("TestRange");
// Print message
System.out.println("Named Range : " + namedRange.getRefersTo());

Identifier les cellules dans une plage nommée

À l’aide d’Aspose.Cells, vous pouvez insérer des données dans les cellules individuelles d’une plage. Supposons que vous ayez une plage nommée de cellules, c’est-à-dire A1:C4. Ainsi, la matrice constituera 4 * 3 = 12 cellules et les cellules de plage individuelles sont disposées de manière séquentielle. Aspose.Cells vous propose certaines propriétés utiles de la classe Range pour accéder aux cellules individuelles dans la plage. Vous pouvez utiliser les méthodes suivantes pour identifier les cellules dans la plage:

  • getFirstRow renvoie l’index de la première ligne dans la plage nommée.
  • getFirstColumn renvoie l’index de la première colonne dans la plage nommée.

L’exemple suivant montre comment saisir certaines valeurs dans les cellules d’une plage spécifiée.

// 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(IdentifyCellsinNamedRange.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
WorksheetCollection worksheets = workbook.getWorksheets();
// Accessing the first worksheet in the Excel file
Worksheet sheet = worksheets.get(0);
Cells cells = sheet.getCells();
// Getting the specified named range
Range range = worksheets.getRangeByName("TestRange");
// Identify range cells.
System.out.println("First Row : " + range.getFirstRow());
System.out.println("First Column : " + range.getFirstColumn());
System.out.println("Row Count : " + range.getRowCount());
System.out.println("Column Count : " + range.getColumnCount());

Saisir des données dans les cellules de la plage nommée

À l’aide d’Aspose.Cells, vous pouvez insérer des données dans les cellules individuelles d’une plage. Supposons que vous ayez une plage nommée de cellules, à savoir H1:J4. Ainsi, la matrice constituera 4 * 3 = 12 cellules et les cellules de plage individuelles sont disposées de manière séquentielle. Aspose.Cells vous propose certaines propriétés utiles de la classe Range pour accéder aux cellules individuelles dans la plage. Vous pouvez utiliser les propriétés suivantes pour identifier les cellules dans la plage:

  • getFirstRow renvoie l’index de la première ligne dans la plage nommée.
  • getFirstColumn renvoie l’index de la première colonne dans la plage nommée.

L’exemple suivant montre comment saisir certaines valeurs dans les cellules d’une plage spécifiée.

// 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(InputDataInCellsInRange.class) + "data/";
// Instantiate a new Workbook.
Workbook workbook = new Workbook();
// Get the first worksheet in the workbook.
Worksheet worksheet1 = workbook.getWorksheets().get(0);
// Create a range of cells and specify its name based on H1:J4.
Range range = worksheet1.getCells().createRange("H1:J4");
range.setName("MyRange");
// Input some data into cells in the range.
range.get(0, 0).setValue("USA");
range.get(0, 1).setValue("SA");
range.get(0, 2).setValue("Israel");
range.get(1, 0).setValue("UK");
range.get(1, 1).setValue("AUS");
range.get(1, 2).setValue("Canada");
range.get(2, 0).setValue("France");
range.get(2, 1).setValue("India");
range.get(2, 2).setValue("Egypt");
range.get(3, 0).setValue("China");
range.get(3, 1).setValue("Philipine");
range.get(3, 2).setValue("Brazil");
// Save the excel file.
workbook.save(dataDir + "IDICInRange_out.xls");
// Print message
System.out.println("Process completed successfully");

Format des plages… Définition de la couleur de fond et des attributs de police pour une plage nommée

Pour appliquer une mise en forme, définissez un objet Style pour spécifier les paramètres de style et appliquez-le à l’objet Range.

L’exemple suivant montre comment définir la couleur de remplissage solide (couleur ombrage) avec les paramètres de police pour une plage.

// 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(FormatRanges1.class) + "data/";
// Instantiate a new Workbook.
Workbook workbook = new Workbook();
// Get the first worksheet in the book.
Worksheet WS = workbook.getWorksheets().get(0);
// Create a named range of cells.
com.aspose.cells.Range range = WS.getCells().createRange(1, 1, 1, 17);
range.setName("MyRange");
// Declare a style object.
Style stl;
// Create the style object with respect to the style of a cell.
stl = WS.getCells().get(1, 1).getStyle();
// Specify some Font settings.
stl.getFont().setName("Arial");
stl.getFont().setBold(true);
// Set the font text color
stl.getFont().setColor(Color.getRed());
// To Set the fill color of the range, you may use ForegroundColor with
// solid Pattern setting.
stl.setBackgroundColor(Color.getYellow());
stl.setPattern(BackgroundType.SOLID);
// Apply the style to the range.
for (int r = 1; r < 2; r++) {
for (int c = 1; c < 18; c++) {
WS.getCells().get(r, c).setStyle(stl);
}
}
// Save the excel file.
workbook.save(dataDir + "FormatRanges1_out.xls");
// Print message
System.out.println("Process completed successfully");

Format des plages… Ajout de bordures à une plage nommée

Il est possible d’ajouter des bordures à une plage de cellules au lieu d’une seule cellule. L’objet Range fournit une méthode setOutlineBorders qui prend les paramètres suivants pour ajouter une bordure à la plage de cellules:

  • borderStyle: le type de bordure, sélectionné dans l’énumération CellBorderType.
  • borderColor: la couleur de ligne de la bordure, sélectionnée dans l’énumération Color.

L’exemple suivant montre comment définir une bordure de contour à une plage.

// 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(FormatRanges2.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Adding a new worksheet to the Workbook object
// Obtaining the reference of the newly added worksheet
int sheetIndex = workbook.getWorksheets().add();
Worksheet worksheet = workbook.getWorksheets().get(sheetIndex);
// Accessing the "A1" cell from the worksheet
Cell cell = worksheet.getCells().get("A1");
// Adding some value to the "A1" cell
cell.setValue("Hello World From Aspose");
// Creating a range of cells starting from "A1" cell to 3rd column in a
// row
Range range = worksheet.getCells().createRange("A1:C1");
range.setName("MyRange");
// Adding a thick outline border with the blue line
range.setOutlineBorders(CellBorderType.THICK, Color.getBlue());
// Saving the Excel file
workbook.save(dataDir + "FormatRanges2_out.xls");
// Print message
System.out.println("Process completed successfully");

Le résultat suivant serait généré après l’exécution du code ci-dessus :

todo:image_alt_text

Appliquer un style aux cellules dans une plage

Parfois, vous voulez appliquer un style aux cellules dans une Plage. Pour cela, vous pouvez parcourir les cellules de la plage et utiliser la méthode Cell.setStyle pour appliquer le style à la cellule.

L’exemple suivant montre comment appliquer des styles aux cellules dans une plage.

// 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(ConvertCellsAddresstoRangeorCellArea.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Obtaining the reference of the newly added worksheet
int sheetIndex = workbook.getWorksheets().add();
Worksheet worksheet = workbook.getWorksheets().get(sheetIndex);
// Accessing the "A1" cell from the worksheet
Cell cell = worksheet.getCells().get("A1");
// Adding some value to the "A1" cell
cell.setValue("Hello World!");
// Creating a range of cells based on cells Address.
Range range = worksheet.getCells().createRange("A1:F10");
// Specify a Style object for borders.
Style style = cell.getStyle();
// Setting the line style of the top border
style.setBorder(BorderType.TOP_BORDER, CellBorderType.THICK, Color.getBlack());
style.setBorder(BorderType.BOTTOM_BORDER, CellBorderType.THICK, Color.getBlack());
style.setBorder(BorderType.LEFT_BORDER, CellBorderType.THICK, Color.getBlack());
style.setBorder(BorderType.RIGHT_BORDER, CellBorderType.THICK, Color.getBlack());
Iterator cellArray = range.iterator();
while (cellArray.hasNext()) {
Cell temp = (Cell) cellArray.next();
// Saving the modified style to the cell.
temp.setStyle(style);
}
// Saving the Excel file
workbook.save(dataDir + "CCAToROrCArea_out.xls");

Supprimer une Plage Nommée

Aspose.Cells fournit la méthode NameCollection.RemoveAt() pour effacer le nom de la plage. Pour effacer le contenu de la plage, utilisez la méthode Cells.ClearRange() . L’exemple suivant montre comment supprimer une plage nommée avec son contenu.

// 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(RemoveANamedRange.class) + "data/";
// Instantiate a new Workbook.
Workbook workbook = new Workbook();
// Get all the worksheets in the book.
WorksheetCollection worksheets = workbook.getWorksheets();
// Get the first worksheet in the worksheets collection.
Worksheet worksheet = workbook.getWorksheets().get(0);
// Create a range of cells.
Range range1 = worksheet.getCells().createRange("E12", "I12");
// Name the range.
range1.setName("MyRange");
// Set the outline border to the range.
range1.setOutlineBorder(BorderType.TOP_BORDER, CellBorderType.MEDIUM, Color.fromArgb(0, 0, 128));
range1.setOutlineBorder(BorderType.BOTTOM_BORDER, CellBorderType.MEDIUM, Color.fromArgb(0, 0, 128));
range1.setOutlineBorder(BorderType.LEFT_BORDER, CellBorderType.MEDIUM, Color.fromArgb(0, 0, 128));
range1.setOutlineBorder(BorderType.RIGHT_BORDER, CellBorderType.MEDIUM, Color.fromArgb(0, 0, 128));
// Input some data with some formattings into
// a few cells in the range.
range1.get(0, 0).setValue("Test");
range1.get(0, 4).setValue("123");
// Create another range of cells.
Range range2 = worksheet.getCells().createRange("B3", "F3");
// Name the range.
range2.setName("testrange");
// Copy the first range into second range.
range2.copy(range1);
// Remove the previous named range (range1) with its contents.
worksheet.getCells().clearRange(11, 4, 11, 8);
worksheets.getNames().removeAt(0);
// Save the excel file.
workbook.save(dataDir + "RANRange_out.xls");
// Print message
System.out.println("Process completed successfully");

borderColors