Plages nommées

Création d’une plage nommée

Utilisation d’Excel Microsoft

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, 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. Tapez le nom des cellules.
  4. Appuyez sur Entrée.

En utilisant Aspose.Cells

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

Aspose.Cells fournit une classe,Cahier , qui représente un fichier Excel Microsoft. LeCahier classe contient unWorksheetCollection qui permet d’accéder à chaque feuille de calcul dans un fichier Excel. Une feuille de calcul est représentée par leFeuille de travail classe. LeFeuille de travail la classe offre uneCellsle recueil.

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

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

Quand lecreateRange est appelée, elle renvoie la plage nommée nouvellement créée en tant qu’instance deIntervalle classe.

L’exemple suivant montre comment créer une plage de cellules nommée qui s’étend 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éder à toutes les plages nommées dans une feuille de calcul

Appeler legetNamedRanges méthode de laWorksheetCollection pour obtenir toutes les plages nommées dans une feuille de calcul. LegetNamedRanges renvoie un tableau de toutes les plages nommées dans leWorksheetCollection.

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

Appeler leWorksheetCollection de la collectiongetRangeByName pour obtenir une plage spécifiée par nom. Un typiquegetRangeByName prend le nom de la plage nommée et renvoie la plage nommée spécifiée en tant qu’instance de laIntervalleclasse.

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 Cells dans une plage nommée

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

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

L’exemple suivant montre comment saisir des 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());

Données d’entrée dans le Cells dans la plage nommée

En utilisant Aspose.Cells, vous pouvez insérer des données dans les cellules individuelles d’une plage. Supposons que vous ayez une plage de cellules nommée, c’est-à-dire H1: J4. Ainsi, la matrice ferait 4 * 3 = 12 cellules et les cellules de plage individuelles sont disposées séquentiellement. Aspose.Cells vous fournit des propriétés utiles de la classe Range pour accéder aux cellules individuelles de la plage. Vous pouvez utiliser les propriétés suivantes pour identifier les cellules de la plage :

  • getFirstRowrenvoie l’index de la première ligne de la plage nommée.
  • getFirstColumnrenvoie l’index de la première colonne de la plage nommée.

L’exemple suivant montre comment saisir des 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");

Plages de format… Définition de la couleur d’arrière-plan et des attributs de police dans une plage nommée

Pour appliquer le formatage, définissez unStyle objet pour spécifier les paramètres de style et les appliquer à l’objetIntervalleobjet.

L’exemple suivant montre comment définir une couleur de remplissage unie (couleur d’ombrage) avec des paramètres de police sur 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");

Formater les plages… Ajouter des bordures à une plage nommée

Il est possible d’ajouter des bordures à une plage de cellules au lieu d’une seule cellule. LeIntervalle l’objet fournit un[setOutlineBorders](https://reference.aspose.com/cells/java/com.aspose.cells/range#setOutlineBorders(int,%20com.aspose.cells.Color)qui prend les paramètres suivants pour ajouter une bordure à la plage de cellules :

  • borderStyle : le type de bordure, sélectionné dans leCellBorderTypeénumération.
  • borderColor : la couleur de ligne de la bordure, sélectionnée dans leCouleur énumération.

L’exemple suivant montre comment définir une bordure de contour sur 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");

La sortie suivante serait générée après l’exécution du code ci-dessus :

tâche : image_autre_texte

Appliquer un style aux cellules d’une plage

Parfois, vous voulez créer appliquer un style aux cellules d’unIntervalle . Pour cela, vous pouvez parcourir les cellules de la plage et utiliser leCell.setStyle pour appliquer le style à la cellule.

L’exemple suivant montre comment appliquer des styles aux cellules d’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 leNameCollection.RemoveAt() méthode pour effacer le nom de la plage. Pour effacer le contenu de la plage, utilisezCells.ClearRange() méthode. 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