Rangos Nombrados

Creando un Rango Nombrado

Usar Microsoft Excel

Los siguientes pasos describen cómo nombrar una celda o rango de celdas utilizando Microsoft Excel. Este método se aplica a Microsoft Office Excel 2003, Microsoft Excel 97, 2000 y 2002.

  1. Selecciona la celda o rango de celdas que deseas nombrar.
  2. Haz clic en el Cuadro de Nombre al final izquierdo de la barra de fórmulas.
  3. Escribe el nombre para las celdas.
  4. Presiona ENTER.

Usar Aspose.Cells

Aquí, usamos la API de Aspose.Cells para realizar la tarea.

Aspose.Cells proporciona una clase, Workbook, que representa un archivo de Microsoft Excel. La clase Workbook contiene una WorksheetCollection que permite acceder a cada hoja de cálculo en un archivo de Excel. Una hoja de cálculo está representada por la clase Worksheet. La clase Worksheet proporciona una colección Cells.

Es posible crear un rango nombrado llamando al método sobrecargado createRange de la colección Cells. Una versión típica del método createRange toma los siguientes parámetros:

  • Nombre de la celda superior izquierda, el nombre de la celda superior izquierda en el rango.
  • Nombre de la celda inferior derecha, el nombre de la celda inferior derecha en el rango.

Cuando se llama al método createRange, devuelve el rango nombrado recién creado como una instancia de la clase Range.

El siguiente ejemplo muestra cómo crear un rango nombrado de celdas que se extiende sobre 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");

Accediendo a Todos los Rangos Nombrados en una Hoja de Cálculo

Llama al método getNamedRanges de la WorksheetCollection para obtener todos los rangos nombrados en una hoja de cálculo. El método getNamedRanges devuelve un array de todos los rangos nombrados en la WorksheetCollection.

El siguiente ejemplo muestra cómo acceder a todos los rangos nombrados en un libro de trabajo.

// 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);

Acceder a un Rango Nombrado Específico

Llame al método getRangeByName de la colección WorksheetCollection para obtener un rango especificado por nombre. Un método típico getRangeByName toma el nombre del rango nombrado y devuelve el rango nombrado especificado como una instancia de la clase Range.

El siguiente ejemplo muestra cómo acceder a un rango especificado por su nombre.

// 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());

Identificar Celdas en un Rango Nombrado

Usando Aspose.Cells, puede insertar datos en las celdas individuales de un rango. Supongamos que tiene un rango nombrado de celdas, es decir, A1:C4. Entonces, la matriz haría 4 * 3 = 12 celdas y las celdas de rango individuales se organizan secuencialmente. Aspose.Cells le proporciona algunas propiedades útiles de la clase Range para acceder a las celdas individuales en el rango. Puede usar los siguientes métodos para identificar las celdas en el rango:

  • getFirstRow devuelve el índice de la primera fila en el rango nombrado.
  • getFirstColumn devuelve el índice de la primera columna en el rango nombrado.

El siguiente ejemplo muestra cómo ingresar algunos valores en las celdas de un rango especificado.

// 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());

Ingresar Datos en las Celdas en el Rango Nombrado

Usando Aspose.Cells, puede insertar datos en las celdas individuales de un rango. Supongamos que tiene un rango nombrado de celdas, es decir, H1:J4. Entonces, la matriz haría 4 * 3 = 12 celdas y las celdas de rango individuales se organizan secuencialmente. Aspose.Cells le proporciona algunas propiedades útiles de la clase Range para acceder a las celdas individuales en el rango. Puede usar las siguientes propiedades para identificar las celdas en el rango:

  • getFirstRow devuelve el índice de la primera fila en el rango nombrado.
  • getFirstColumn devuelve el índice de la primera columna en el rango nombrado.

El siguiente ejemplo muestra cómo ingresar algunos valores en las celdas de un rango especificado.

// 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");

Formato de Rangos…Configurar Color de Fondo y Atributos de Fuente a un Rango Nombrado

Para aplicar formato, defina un objeto Style para especificar la configuración de estilo y aplíquelo al objeto Range.

El siguiente ejemplo muestra cómo configurar un color de relleno sólido (color de sombreado) con ajustes de fuente a un rango.

// 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");

Formato Rangos…Añadir Bordes a un Rango Nombrado

Es posible añadir bordes a un rango de celdas en lugar de solo a una celda individual. El objeto Range proporciona un método setOutlineBorders que toma los siguientes parámetros para agregar un borde al rango de celdas:

  • borderStyle: el tipo de borde, seleccionado de la enumeración CellBorderType.
  • borderColor: el color de la línea del borde, seleccionado de la enumeración Color.

El siguiente ejemplo muestra cómo establecer un borde de contorno en un rango.

// 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 siguiente salida se generaría después de ejecutar el código anterior:

todo:image_alt_text

Aplicar estilo a las celdas en un rango

A veces, desea aplicar un estilo a las celdas en un Rango. Para esto, puede iterar sobre las celdas en el rango y usar el método Cell.setStyle para aplicar el estilo a la celda.

El siguiente ejemplo muestra cómo aplicar estilos a las celdas en un Rango.

// 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");

Eliminar un Rango Nombrado

Aspose.Cells proporciona el método NameCollection.RemoveAt() para borrar el nombre del rango. Para borrar el contenido del rango, utilice el método Cells.ClearRange(). El siguiente ejemplo muestra cómo eliminar un rango nombrado con su contenido.

// 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