Benannte Bereiche

Erstellen eines benannten Bereichs

Verwendung von Microsoft Excel

Die folgenden Schritte beschreiben, wie Sie mithilfe von Microsoft Excel eine Zelle oder einen Zellenbereich benennen. Diese Methode gilt für Microsoft Office Excel 2003, Microsoft Excel 97, 2000 und 2002.

  1. Wählen Sie die Zelle oder den Zellenbereich aus, den Sie benennen möchten.
  2. Klicken Sie auf das Namensfeld am linken Ende der Formelzeile.
  3. Geben Sie den Namen für die Zellen ein.
  4. Drücken Sie die EINGABETASTE.

Verwendung von Aspose.Cells

Hier verwenden wir die Aspose.Cells API, um die Aufgabe zu erledigen.

Aspose.Cells bietet eine Klasse, Workbook, die eine Microsoft Excel-Datei darstellt. Die Workbook Klasse enthält eine WorksheetCollection, die den Zugriff auf jedes Arbeitsblatt in einer Excel-Datei ermöglicht. Ein Arbeitsblatt wird durch die Worksheet Klasse repräsentiert. Die Worksheet Klasse bietet eine Cells Sammlung.

Es ist möglich, einen benannten Bereich zu erstellen, indem die überladene Methode createRange der Cells Sammlung aufgerufen wird. Eine typische Version der createRange Methode verwendet die folgenden Parameter:

  • Name der oberen linken Zelle, Name der oberen linken Zelle im Bereich.
  • Name der unteren rechten Zelle, Name der unteren rechten Zelle im Bereich.

Wenn die Methode createRange aufgerufen wird, wird der neu erstellte benannte Bereich als Instanz der Klasse Range zurückgegeben.

Das folgende Beispiel zeigt, wie ein benannter Bereich von Zellen erstellt wird, der sich über B4:G14 erstreckt.

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

Zugriff auf alle benannten Bereiche in einer Tabelle

Rufen Sie die Methode getNamedRanges der WorksheetCollection auf, um alle benannten Bereiche in einer Tabelle zu erhalten. Die Methode getNamedRanges gibt ein Array mit allen benannten Bereichen in der WorksheetCollection zurück.

Das folgende Beispiel zeigt, wie auf alle benannten Bereiche in einer Arbeitsmappe zugegriffen wird.

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

Auf einen bestimmten benannten Bereich zugreifen

Rufen Sie die Methode getRangeByName der Sammlung WorksheetCollection auf, um einen bestimmten Bereich nach Namen zu erhalten. Eine typische Methode getRangeByName erhält den Namen des benannten Bereichs und gibt den spezifizierten benannten Bereich als Instanz der Klasse Range zurück.

Das folgende Beispiel zeigt, wie auf einen bestimmten Bereich nach seinem Namen zugegriffen wird.

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

Zellen in einem benannten Bereich identifizieren

Mit Aspose.Cells können Sie Daten in die einzelnen Zellen eines Bereichs einfügen. Angenommen, Sie haben einen benannten Bereich von Zellen, d.h. A1:C4. Die Matrix würde also 4 * 3 = 12 Zellen ergeben, und die einzelnen Bereichszellen sind sequentiell angeordnet. Aspose.Cells bietet Ihnen einige nützliche Eigenschaften der Range-Klasse, um auf die einzelnen Zellen im Bereich zuzugreifen. Sie können die folgenden Methoden verwenden, um die Zellen im Bereich zu identifizieren:

  • getFirstRow gibt den Index der ersten Zeile im benannten Bereich zurück.
  • getFirstColumn gibt den Index der ersten Spalte im benannten Bereich zurück.

Das folgende Beispiel zeigt, wie einige Werte in die Zellen eines bestimmten Bereichs eingegeben werden.

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

Daten in die Zellen des benannten Bereichs eingeben

Mit Aspose.Cells können Sie Daten in die einzelnen Zellen eines Bereichs einfügen. Angenommen, Sie haben einen benannten Bereich von Zellen, also H1:J4. Die Matrix würde also 4 * 3 = 12 Zellen ergeben, und die einzelnen Bereichszellen sind sequentiell angeordnet. Aspose.Cells bietet Ihnen einige nützliche Eigenschaften der Range-Klasse, um auf die einzelnen Zellen im Bereich zuzugreifen. Sie können die folgenden Eigenschaften verwenden, um die Zellen im Bereich zu identifizieren:

  • getFirstRow gibt den Index der ersten Zeile im benannten Bereich zurück.
  • getFirstColumn gibt den Index der ersten Spalte im benannten Bereich zurück.

Das folgende Beispiel zeigt, wie einige Werte in die Zellen eines bestimmten Bereichs eingegeben werden.

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

Formatbereiche… Hintergrundfarbe und Schriftattribute auf einen benannten Bereich einstellen

Um die Formatierung anzuwenden, definieren Sie ein Style-Objekt, um Stileinstellungen festzulegen und wenden Sie es auf das Range-Objekt an.

Im folgenden Beispiel wird gezeigt, wie eine feste Füllfarbe (Schattierungsfarbe) mit Schrifteinstellungen auf einen Bereich gesetzt wird.

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

Formatbereiche… Hinzufügen von Rahmen zu einem benannten Bereich

Es ist möglich, Rahmen zu einem Bereich von Zellen hinzuzufügen, anstelle nur einer einzelnen Zelle. Das Range-Objekt bietet eine setOutlineBorders-Methode, die die folgenden Parameter verwendet, um einen Rand zum Bereich von Zellen hinzuzufügen:

  • borderStyle: Der Typ des Rahmens, ausgewählt aus der CellBorderType-Aufzählung.
  • borderColor: Die Linienfarbe des Rahmens, ausgewählt aus der Color-Aufzählung.

Im folgenden Beispiel wird gezeigt, wie einem Bereich ein Umrissrahmen gesetzt wird.

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

Nach Ausführung des obigen Codes wird die folgende Ausgabe generiert:

todo:image_alt_text

Stil auf Zellen in einem Bereich anwenden

Manchmal möchten Sie einen Stil auf die Zellen in einem Range anwenden. Hierfür können Sie über die Zellen im Bereich iterieren und die Cell.setStyle-Methode verwenden, um den Stil auf die Zelle anzuwenden.

Im folgenden Beispiel wird gezeigt, wie Stile auf Zellen in einem Bereich angewendet werden.

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

Einen benannten Bereich entfernen

Aspose.Cells stellt die NameCollection.RemoveAt()-Methode bereit, um den Namen des Bereichs zu löschen. Um den Inhalt des Bereichs zu löschen, verwenden Sie die Cells.ClearRange()-Methode. Im folgenden Beispiel wird gezeigt, wie ein benannter Bereich mit seinem Inhalt entfernt wird.

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