アクセスおよび名前付き範囲のコピーを作成します
紹介
通常、列や行ラベルは個々のセルを参照するために使用されます。セル、セル範囲、数式、または定数値を表す記述的な名前を作成することが可能です。名前という言葉は、セル、セル範囲、数式、または定数値を表す文字列を指すことがあります。範囲に名前を割り当てると、そのセル範囲はその名前で参照することができます。Sales!C20:C30のようなわかりにくい範囲を表すために理解しやすい名前、例えばProductsなどを使用してください。ラベルは、同じワークシート上のデータを参照する数式で使用できます。他のワークシート上の範囲を表す場合は、名前を使用できます。名前付き範囲 は、特にリストコントロール、ピボットテーブル、チャートなどのソース範囲として使用されたときに、Microsoft Excelの最も強力な機能の一つです。
Microsoft Excelを使用した名前付き範囲の操作
名前付き範囲を作成します
次の手順では、MS Excelを使用してセルまたはセル範囲に名前を付ける方法について説明します。この方法は Microsoft Office Excel 2003、Microsoft Excel 97、2000 および 2002 に適用されます。
- 名前を付けたいセル、セルの範囲を選択します。
- フォーミュラバーの左端にある名前ボックスをクリックします。
- セルに名前を入力します。
- ENTER キーを押します。
Aspose.Cells for Python Excel ライブラリを使用した名前付き範囲の作業
ここでは、Aspose.Cells for Python via .NET API を使用してタスクを実行します。 Aspose.Cells for Python via .NETは、Microsoft Excelファイルを表すWorkbookクラスを提供します。Workbookクラスには、Excelファイル内の各ワークシートにアクセスできるworksheetsコレクションが含まれています。ワークシートはWorksheetクラスで表されます。Worksheetクラスはcellsコレクションを提供します。
名前付き範囲の作成
Cellsコレクションのオーバーロードされたcreate_rangeメソッドを呼び出すことで、名前付き範囲を作成することが可能です。通常、create_rangeメソッドの一般的なバージョンは、以下のパラメータを取ります:
- 左上のセルの名前、範囲内の左上のセルの名前。
- 右下のセルの名前、範囲内の右下のセルの名前。
create_rangeメソッドを呼び出すと、Rangeクラスのインスタンスとして新しく作成された範囲が返されます。このRangeオブジェクトを使用して、名前付き範囲を構成します。たとえば、nameプロパティを使用して範囲の名前を設定します。次の例は、B4:G14を拡張するセルの名前付き範囲を作成する方法を示しています。
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") |
名前付き範囲内のセルにデータを入力する
範囲の個々のセルにデータを挿入できます。パターンに従って範囲の個々のセルにデータを挿入できます
- C#: Range[row,column]
- VB: Range(row,column)
A1:C4をスパンするセルの名前付き範囲があるとします。行列は4 * 3 = 12個のセルを作ります。個々の範囲セルは順次配置されています: 範囲[0,0]、範囲[0,1]、範囲[0,2]、範囲[1,0]、範囲[1,1]、範囲[1,2]、範囲[2,0]、範囲[2,1]、範囲[2,2]、範囲[3,0]、範囲[3,1]、範囲[3,2]。
範囲内のセルを特定するには、次のプロパティを使用します:
- FirstRowは、名前付き範囲内の最初の行のインデックスを返します。
- FirstColumnは、名前付き範囲内の最初の列のインデックスを返します。
- RowCountは、名前付き範囲内の総行数を返します。
- ColumnCountは、名前付き範囲内の総列数を返します。
次の例では、指定された範囲のセルに値を入力する方法を示しています。
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") |
名前付き範囲内のセルを特定する
範囲の個々のセルにデータを挿入できます。
- C#: Range[row,column]
- VB: Range(row,column)
A1:C4をスパンする名前付き範囲があるとします。行列は4 * 3 = 12個のセルを作ります。個々の範囲セルは順次配置されています: 範囲[0,0]、範囲[0,1]、範囲[0,2]、範囲[1,0]、範囲[1,1]、範囲[1,2]、範囲[2,0]、範囲[2,1]、範囲[2,2]、範囲[3,0]、範囲[3,1]、範囲[3,2]。
範囲内のセルを特定するには、次のプロパティを使用します:
- FirstRowは、名前付き範囲内の最初の行のインデックスを返します。
- FirstColumnは、名前付き範囲内の最初の列のインデックスを返します。
- RowCountは、名前付き範囲内の総行数を返します。
- ColumnCountは、名前付き範囲内の総列数を返します。
次の例では、指定された範囲のセルに値を入力する方法を示しています。
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)) |
名前付き範囲へのアクセス
特定の名前付き範囲にアクセスする
指定された名前で範囲にアクセスするために、Worksheetコレクションのget_range_by_nameメソッドを呼び出します。典型的なget_range_by_nameメソッドは、名前付き範囲の名前を取り、Rangeクラスのインスタンスとして指定された名前付き範囲を返します。次の例は、名前で指定された範囲にアクセスする方法を示しています。
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) |
スプレッドシート内のすべての名前付き範囲にアクセス
Worksheetコレクションのget_named_rangesメソッドを呼び出して、スプレッドシート内のすべての名前付き範囲を取得します。get_named_rangesメソッドは、Worksheetコレクション内のすべての名前付き範囲の配列を返します。
次の例は、ワークブック内のすべての名前付き範囲にアクセスする方法を示しています。
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))) |
名前付き範囲をコピー
Aspose.Cells for Python via .NETでは、セルの範囲をフォーマット付きで別の範囲にコピーするためのRange.copy()メソッドが提供されます。
次の例では、ソース範囲のセルを別の名前付き範囲にコピーする方法を示しています。
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") |