Нахождение или Поиск Данных
Поиск ячеек, содержащих указанные данные
Использование Microsoft Excel
Microsoft Excel позволяет пользователям находить ячейки в листе, содержащие указанные данные. Если выбрать Редактировать в меню Поиск в Microsoft Excel, откроется диалоговое окно, в котором можно указать значение для поиска.
Здесь мы ищем значение “Апельсины”. Aspose.Cells также позволяет разработчикам находить ячейки в листе с указанными значениями.
Использование Aspose.Cells
Aspose.Cells предоставляет класс Workbook, который представляет файл Microsoft Excel. Класс Workbook содержит коллекцию worksheets, которая позволяет получить доступ к каждому листу в файле Excel. Лист представлен классом Worksheet. Класс Worksheet предоставляет коллекцию cells, которая представляет все ячейки в листе. Коллекция cells предоставляет несколько методов для поиска ячеек в листе, содержащих указанные данные. Ниже подробно описаны несколько из этих методов.
Поиск ячеек, содержащих формулу
Разработчики могут найти указанную формулу на листе, вызвав метод find коллекции cells. Обычно метод find принимает три параметра:
- что: Объект для поиска. Тип должен быть int, double, DateTime, string, bool.
- предыдущая_ячейка: Предыдущая ячейка с тем же объектом. Этот параметр может быть установлен в null при поиске с начала.
- find_options: Опции для поиска необходимого объекта.
Ниже приведены примеры использования данных листа для тренировки методов поиска:
from aspose.cells import FindOptions, LookInType, Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# Opening the Excel file | |
workbook = Workbook(sourceDir + "sampleFindingCellsContainingFormula.xlsx") | |
# Accessing the first worksheet in the Excel file | |
worksheet = workbook.worksheets[0] | |
# Instantiate FindOptions Object | |
findOptions = FindOptions() | |
findOptions.look_in_type = LookInType.FORMULAS | |
# Finding the cell containing the specified formula | |
cell = worksheet.cells.find("=SUM(A5:A10)", None, findOptions) | |
# Printing the name of the cell found after searching worksheet | |
print("Name of the cell containing formula: " + cell.name) |
Поиск данных или формул с использованием FindOptions
Можно найти указанные значения, используя метод find коллекции cells с различными FindOptions. Обычно метод find принимает следующие параметры:
- что: данные или значение для поиска.
- предыдущая_ячейка: последняя ячейка, содержавшая то же значение. Этот параметр можно установить в null при поиске с начала.
- find_options: варианты поиска.
from aspose.cells import CellArea, FindOptions, LookAtType, LookInType, Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# Instantiate the workbook object | |
workbook = Workbook(sourceDir + "sampleFindingDataOrFormulasUsingFindOptions.xlsx") | |
workbook.calculate_formula() | |
# Get Cells collection | |
cells = workbook.worksheets[0].cells | |
# Instantiate FindOptions Object | |
findOptions = FindOptions() | |
# Create a Cells Area | |
ca = CellArea() | |
ca.start_row = 8 | |
ca.start_column = 2 | |
ca.end_row = 17 | |
ca.end_column = 13 | |
# Set cells area for find options | |
findOptions.set_range(ca) | |
# Set searching properties | |
findOptions.search_backward = False | |
findOptions.seach_order_by_rows = True | |
# Set the lookintype, you may specify, values, formulas, comments etc. | |
findOptions.look_in_type = LookInType.VALUES | |
# Set the lookattype, you may specify Match entire content, endswith, starwith etc. | |
findOptions.look_at_type = LookAtType.ENTIRE_CONTENT | |
# Find the cell with value | |
cell = cells.find(341, None, findOptions) | |
if cell != None: | |
print("Name of the cell containing the value: " + cell.name) | |
else: | |
print("Record not found ") |
Поиск ячеек, содержащих указанное строковое значение или число
Можно найти указанные строковые значения, вызвав тот же метод find, найденный в коллекции cells, с различными FindOptions.
Укажите свойства FindOptions.look_in_type и FindOptions.look_at_type. В следующем примере кода показано, как использовать эти свойства для поиска ячеек с различным количеством строк в начале или в центре или в конце строки ячейки.
from aspose.cells import FindOptions, LookAtType, LookInType, 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 the workbook object | |
workbook = Workbook(dataDir + "book1.xls") | |
# Get Cells collection | |
cells = workbook.worksheets[0].cells | |
opts = FindOptions() | |
opts.look_in_type = LookInType.VALUES | |
opts.look_at_type = LookAtType.ENTIRE_CONTENT | |
# Find the cell with the input integer or double | |
cell1 = cells.find(205, None, opts) | |
if cell1 != None: | |
print("Name of the cell containing the value: " + cell1.name) | |
else: | |
print("Record not found ") | |
# Find the cell with the input string | |
cell2 = cells.find("Items A", None, opts) | |
if cell2 != None: | |
print("Name of the cell containing the value: " + cell2.name) | |
else: | |
print("Record not found ") | |
# Find the cell containing with the input string | |
opts.look_at_type = LookAtType.CONTAINS | |
cell3 = cells.find("Data", None, opts) | |
if cell3 != None: | |
print("Name of the cell containing the value: " + cell3.name) | |
else: | |
print("Record not found ") |