Zugriff erstellen und benannte Bereiche kopieren
Einführung
Normalerweise werden Spalten- und Zeilenbezeichnungen verwendet, um auf individuelle Zellen zu verweisen. Es ist möglich, aussagekräftige Namen zu erstellen, um Zellen, Zellenbereiche, Formeln oder Konstantenwerte zu repräsentieren. Das Wort Name kann sich auf eine Zeichenfolge beziehen, die eine Zelle, einen Zellenbereich, eine Formel oder einen Konstantenwert darstellt. Durch Zuweisen eines Namens an einen Bereich kann auf diesen Bereich von seinem Namen aus zugegriffen werden. Verwenden Sie leicht verständliche Namen, wie z.B. Produkte, um auf schwer verständliche Bereiche, wie z.B. Umsatz!C20:C30, zu verweisen. Bezeichnungen können in Formeln verwendet werden, die sich auf Daten im gleichen Arbeitsblatt beziehen; wenn Sie einen Bereich auf einem anderen Arbeitsblatt darstellen möchten, können Sie einen Namen verwenden. *Benannte Bereiche gehören zu den leistungsfähigsten Funktionen von Microsoft Excel, insbesondere wenn sie als Quellbereich für Listensteuerungen, Pivot-Tabellen, Diagramme usw. verwendet werden.
Arbeiten mit benannten Bereich unter Verwendung von Microsoft Excel
Benannte Bereiche erstellen
Die folgenden Schritte beschreiben, wie man eine Zelle oder einen Zellenbereich mit MS Excel benennt. Diese Methode gilt für Microsoft Office Excel 2003, Microsoft Excel 97, 2000 und 2002.
- Wählen Sie die Zelle oder den Zellenbereich aus, den Sie benennen möchten.
- Klicken Sie auf das Namensfeld am linken Ende der Formelzeile.
- Geben Sie den Namen für die Zellen ein.
- Drücken Sie die EINGABETASTE.
Arbeiten mit benannten Bereichen mit Aspose.Cells für Python Excel-Bibliothek
Hier verwenden wir die Aspose.Cells for Python via .NET API, um die Aufgabe zu erledigen. Aspose.Cells für Python via .NET bietet eine Klasse, Workbook die eine Microsoft Excel-Datei darstellt. Die Klasse Workbook enthält eine worksheets-Sammlung, die den Zugriff auf jedes Arbeitsblatt in einer Excel-Datei ermöglicht. Ein Arbeitsblatt wird durch die Klasse Worksheet dargestellt. Die Klasse Worksheet stellt eine cells-Sammlung bereit.
Benannten Bereich erstellen
Es ist möglich, einen benannten Bereich zu erstellen, indem die überladene create_range-Methode der Cells-Sammlung aufgerufen wird. Eine typische Version der create_range-Methode nimmt 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 create_range aufgerufen wird, wird der neu erstellte Bereich als Instanz der Klasse Range zurückgegeben. Verwenden Sie dieses Objekt Range, um den benannten Bereich zu konfigurieren. Setzen Sie beispielsweise den Namen des Bereichs mit der name-Eigenschaft. Das folgende Beispiel zeigt, wie man einen benannten Bereich von Zellen erstellt, der sich über B4:G14 erstreckt.
from aspose.cells import Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Opening the Excel file through the file stream | |
workbook = Workbook(dataDir + "book1.xls") | |
# Accessing the first worksheet in the Excel file | |
worksheet = workbook.worksheets[0] | |
# Creating a named range | |
range = worksheet.cells.create_range("B4", "G14") | |
# Setting the name of the named range | |
range.name = "TestRange" | |
# Saving the modified Excel file | |
workbook.save(dataDir + "output.out.xls") |
Daten in die Zellen des benannten Bereichs eingeben
Sie können Daten in die einzelnen Zellen eines Bereichs einfügen, indem Sie dem Muster folgen
- C#: Range[row,column]
- VB: Range(row,column)
Angenommen, Sie haben einen benannten Bereich von Zellen, der sich über A1:C4 erstreckt. Die Matrix enthält 4 * 3 = 12 Zellen. Die einzelnen Bereichszellen sind sequentiell angeordnet: Bereich[0,0], Bereich[0,1], Bereich[0,2], Bereich[1,0], Bereich[1,1], Bereich[1,2], Bereich[2,0], Bereich[2,1], Bereich[2,2], Bereich[3,0], Bereich[3,1], Bereich[3,2].
Verwenden Sie die folgenden Eigenschaften, um die Zellen im Bereich zu identifizieren:
- FirstRow gibt den Index der ersten Zeile im benannten Bereich zurück.
- FirstColumn gibt den Index der ersten Spalte im benannten Bereich zurück.
- RowCount gibt die Gesamtanzahl der Zeilen im benannten Bereich zurück.
- ColumnCount gibt die Gesamtanzahl der Spalten im benannten Bereich zurück.
Das folgende Beispiel zeigt, wie einige Werte in die Zellen eines bestimmten Bereichs eingegeben werden.
from aspose.cells import Workbook | |
from os import os, path | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Create directory if it is not already present. | |
IsExists = path.isdir(dataDir) | |
if notIsExists: | |
os.makedirs(dataDir) | |
# Instantiate a new Workbook. | |
workbook = Workbook() | |
# Get the first worksheet in the workbook. | |
worksheet1 = workbook.worksheets[0] | |
cells = worksheet1.cells | |
# Create a range of cells based on H1:J4. | |
range = cells.create_range("H1", "J4") | |
# Name the range. | |
range.name = "MyRange" | |
startRow = range.first_row | |
startCol = range.first_column | |
# Input some data into cells in the range. | |
cells.get(startRow, startCol).put_value("USA") | |
cells.get(startRow, startCol + 1).put_value("SA") | |
cells.get(startRow, startCol + 2).put_value("Israel") | |
cells.get(startRow + 1, startCol).put_value("UK") | |
cells.get(startRow + 1, startCol + 1).put_value("AUS") | |
cells.get(startRow + 1, startCol + 2).put_value("Canada") | |
cells.get(startRow + 2, startCol).put_value("France") | |
cells.get(startRow + 2, startCol + 1).put_value("India") | |
cells.get(startRow + 2, startCol + 2).put_value("Egypt") | |
cells.get(startRow + 3, startCol).put_value("China") | |
cells.get(startRow + 3, startCol + 1).put_value("Philipine") | |
cells.get(startRow + 3, startCol + 2).put_value("Brazil") | |
# Save the excel file. | |
workbook.save(dataDir + "rangecells.out.xls") |
Zellen im benannten Bereich identifizieren
Sie können Daten in die einzelnen Zellen eines Bereichs einfügen, indem Sie dem Muster folgen:
- C#: Range[row,column]
- VB: Range(row,column)
Wenn Sie einen benannten Bereich haben, der A1:C4 umfasst. Die Matrix umfasst 4 * 3 = 12 Zellen. Die einzelnen Bereichszellen sind sequentiell angeordnet: Bereich[0,0], Bereich[0,1], Bereich[0,2], Bereich[1,0] ,Bereich[1,1], Bereich[1,2], Bereich[2,0], Bereich[2,1], Bereich[2,2], Bereich[3,0], Bereich[3,1], Bereich[3,2].
Verwenden Sie die folgenden Eigenschaften, um die Zellen im Bereich zu identifizieren:
- FirstRow gibt den Index der ersten Zeile im benannten Bereich zurück.
- FirstColumn gibt den Index der ersten Spalte im benannten Bereich zurück.
- RowCount gibt die Gesamtanzahl der Zeilen im benannten Bereich zurück.
- ColumnCount gibt die Gesamtanzahl der Spalten im benannten Bereich zurück.
Das folgende Beispiel zeigt, wie einige Werte in die Zellen eines bestimmten Bereichs eingegeben werden.
from aspose.cells import Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Instantiate a new Workbook. | |
workbook = Workbook(dataDir + "book1.xls") | |
# Getting the specified named range | |
range = workbook.worksheets.get_range_by_name("TestRange") | |
# Identify range cells. | |
print("First Row : " + str(range.first_row)) | |
print("First Column : " + str(range.first_column)) | |
print("Row Count : " + str(range.row_count)) | |
print("Column Count : " + str(range.column_count)) |
Zugriff auf benannte Bereiche
Auf einen bestimmten benannten Bereich zugreifen
Rufen Sie die Methode get_range_by_name der Worksheet-Sammlung auf, um einen Bereich nach dem angegebenen Namen zu erhalten. Eine typische get_range_by_name-Methode nimmt den Namen des benannten Bereichs entgegen und gibt den angegebenen benannten Bereich als Instanz der Range-Klasse zurück. Das folgende Beispiel zeigt, wie auf einen bestimmten Bereich nach seinem Namen zugegriffen wird.
from aspose.cells import Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Opening the Excel file through the file stream | |
workbook = Workbook(dataDir + "book1.xls") | |
# Getting the specified named range | |
range = workbook.worksheets.get_range_by_name("TestRange") | |
if range != None: | |
print("Named Range : " + range.refers_to) |
Zugriff auf alle benannten Bereiche in einer Arbeitsmappe
Rufen Sie die Methode get_named_ranges der Worksheet-Sammlung auf, um alle benannten Bereiche in einer Arbeitsmappe zu erhalten. Die get_named_ranges-Methode gibt ein Array aller benannten Bereiche in der Worksheet-Sammlung zurück.
Das folgende Beispiel zeigt, wie auf alle benannten Bereiche in einer Arbeitsmappe zugegriffen wird.
from aspose.cells import Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Opening the Excel file through the file stream | |
workbook = Workbook(dataDir + "book1.xls") | |
# Getting all named ranges | |
range = workbook.worksheets.get_named_ranges() | |
if range != None: | |
print("Total Number of Named Ranges: " + str(len(range))) |
Benannte Bereiche kopieren
Aspose.Cells für Python via .NET bietet die Methode Range.copy() zum Kopieren eines Zellenbereichs mit Formatierung in einen anderen Bereich an.
Das folgende Beispiel zeigt, wie ein Quellbereich von Zellen in einen anderen benannten Bereich kopiert wird.
from aspose.cells import BorderType, CellBorderType, Workbook | |
from aspose.pydrawing import Color | |
from os import os, path | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Create directory if it is not already present. | |
IsExists = path.isdir(dataDir) | |
if notIsExists: | |
os.makedirs(dataDir) | |
# Instantiate a new Workbook. | |
workbook = Workbook() | |
# Get all the worksheets in the book. | |
worksheets = workbook.worksheets | |
# Get the first worksheet in the worksheets collection. | |
worksheet = workbook.worksheets[0] | |
cells = worksheet.cells | |
# Create a range of cells. | |
range1 = cells.create_range("E12", "I12") | |
# Name the range. | |
range1.name = "MyRange" | |
# Set the outline border to the range. | |
range1.set_outline_border(BorderType.TOP_BORDER, CellBorderType.MEDIUM, Color.from_argb(0, 0, 128)) | |
range1.set_outline_border(BorderType.BOTTOM_BORDER, CellBorderType.MEDIUM, Color.from_argb(0, 0, 128)) | |
range1.set_outline_border(BorderType.LEFT_BORDER, CellBorderType.MEDIUM, Color.from_argb(0, 0, 128)) | |
range1.set_outline_border(BorderType.RIGHT_BORDER, CellBorderType.MEDIUM, Color.from_argb(0, 0, 128)) | |
startRow = range1.first_row | |
startCol = range1.first_column | |
# Input some data with some formattings into | |
# A few cells in the range. | |
cells.get(startRow, startCol).put_value("Test") | |
cells.get(startRow, startCol + 4).put_value("123") | |
# Create another range of cells. | |
range2 = cells.create_range("B3", "F3") | |
# Name the range. | |
range2.name = "testrange" | |
# Copy the first range into second range. | |
range2.copy(range1) | |
# Save the excel file. | |
workbook.save(dataDir + "copyranges.out.xls") |