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

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

Использование 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, если поиск начинается с начала.
  • ПараметрыПоиска: Параметры поиска требуемого объекта.

Ниже приведены примеры использования данных листа для тренировки методов поиска:

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Opening the Excel file
Workbook workbook = new Workbook(sourceDir + "sampleFindingCellsContainingFormula.xlsx");
// Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.Worksheets[0];
// Instantiate FindOptions Object
FindOptions findOptions = new FindOptions();
findOptions.LookInType = LookInType.Formulas;
// Finding the cell containing the specified formula
Cell cell = worksheet.Cells.Find("=SUM(A5:A10)", null, findOptions);
// Printing the name of the cell found after searching worksheet
System.Console.WriteLine("Name of the cell containing formula: " + cell.Name);

Поиск данных или формул с использованием FindOptions

Можно найти указанные значения, используя метод Find коллекции Cells с различными FindOptions. Обычно метод Find принимает следующие параметры:

  • Значение поиска, данные или значение для поиска.
  • Предыдущая ячейка, последняя ячейка, содержавшая то же значение. Этот параметр может быть установлен в null при поиске с начала.
  • Параметры поиска, параметры поиска.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Instantiate the workbook object
Workbook workbook = new Workbook(sourceDir + "sampleFindingDataOrFormulasUsingFindOptions.xlsx");
workbook.CalculateFormula();
// Get Cells collection
Cells cells = workbook.Worksheets[0].Cells;
// Instantiate FindOptions Object
FindOptions findOptions = new FindOptions();
// Create a Cells Area
CellArea ca = new CellArea();
ca.StartRow = 8;
ca.StartColumn = 2;
ca.EndRow = 17;
ca.EndColumn = 13;
// Set cells area for find options
findOptions.SetRange(ca);
// Set searching properties
findOptions.SearchBackward = false;
findOptions.SearchOrderByRows = true;
// Set the lookintype, you may specify, values, formulas, comments etc.
findOptions.LookInType = LookInType.Values;
// Set the lookattype, you may specify Match entire content, endswith, starwith etc.
findOptions.LookAtType = LookAtType.EntireContent;
// Find the cell with value
Cell cell = cells.Find(341, null, findOptions);
if (cell != null)
{
Console.WriteLine("Name of the cell containing the value: " + cell.Name);
}
else
{
Console.WriteLine("Record not found ");
}

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

Можно найти указанные строковые значения, вызвав тот же метод Find, найденный в коллекции Cells, с различными FindOptions.

Укажите свойства FindOptions.LookInType и FindOptions.LookAtType. В следующем примере кода показано, как использовать эти свойства для поиска ячеек с различным количеством строк в начале или в центре или в конце строки ячейки.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Instantiate the workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
// Get Cells collection
Cells cells = workbook.Worksheets[0].Cells;
FindOptions opts = new FindOptions();
opts.LookInType = LookInType.Values;
opts.LookAtType = LookAtType.EntireContent;
// Find the cell with the input integer or double
Cell cell1 = cells.Find(205, null, opts);
if (cell1 != null)
{
Console.WriteLine("Name of the cell containing the value: " + cell1.Name);
}
else
{
Console.WriteLine("Record not found ");
}
// Find the cell with the input string
Aspose.Cells.Cell cell2 = cells.Find("Items A", null, opts);
if (cell2 != null)
{
Console.WriteLine("Name of the cell containing the value: " + cell2.Name);
}
else
{
Console.WriteLine("Record not found ");
}
// Find the cell containing with the input string
opts.LookAtType = LookAtType.Contains;
Cell cell3 = cells.Find("Data", null, opts);
if (cell3 != null)
{
Console.WriteLine("Name of the cell containing the value: " + cell3.Name);
}
else
{
Console.WriteLine("Record not found ");
}

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