Нахождение или Поиск Данных

Поиск ячеек, содержащих указанные данные

Использование 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 ")

Продвинутые темы