Skip to main content

Поиск в документе

Для поиска диапазона в текстовом или табличном документе необходимо создать экземпляр класса Search посредством вызова createSearch(document), затем использовать метод Search.findText (см. Рисунок).

Примеры поиска в документе​


// Поиск по всему документу
Search search = DocumentAPI.createSearch(document);
RangesEnumerator searchResult = search.findText("API", CaseSensitive.Yes);

// Поиск в диапазоне блока
Range firstBlockRange = document.getBlocks().getBlock(0).getRange();
Search search = DocumentAPI.createSearch(document);
RangesEnumerator searchResult = search.findText("API", firstBlockRange, CaseSensitive.No);

// Поиск в диапазоне ячеек
Table table = document.getBlocks().getTable(0);
CellRange cellRange = table.getCellRange("A1:B2");
Search search = DocumentAPI.createSearch(document);
RangesEnumerator searchResult = search.findText("API", cellRange, CaseSensitive.Yes);

// Поиск в таблице
Table table = document.getBlocks().getTable(0);
Search search = DocumentAPI.createSearch(document);
RangesEnumerator searchResult = search.findText("API", table, CaseSensitive.Yes);

// Отображение результатов поиска
while (searchResult.MoveNext())
{
var range = searchResult.Current;
Console.WriteLine(range.extractText());
}

Для поиска ячеек в табличном документе используйте методы Table.find и CellRange.find.

Пример поиска ячеек в табличном документе​


Table sheet = document.getBlocks().getTable(0);

TableSearchSettings searchProps = new TableSearchSettings();
searchProps.caseSensitive = CaseSensitive.No;
searchProps.matchBehaviour = TableSearchSettings.MatchBehaviour.Glob;
searchProps.searchIn = TableSearchSettings.SearchProperty.Value;
searchProps.wholeWords = true;

CellsEnumerator results = sheet.find("*eye", searchProps);
foreach (Cell cell in results)
{
Console.WriteLine(cell.getFormattedValue()); // Steeleye Stout
}

Пример форматирования результатов поиска​


Table sheet = document.getBlocks().getTable(0);
Search search = DocumentAPI.createSearch(document);
string template = "МойОфис";
var ranges = search.findText(template, sheet);
foreach (Range range in ranges)
{
TextProperties props = range.getTextProperties();
props.bold = true;
range.setTextProperties(props);
}