Поиск и замена
Функция поиска и замены позволяет быстро находить и заменять нужное содержимое в электронных таблицах. Различные параметры совпадения помогают эффективно обрабатывать данные.
Откройте панель поиска и замены в полном примере с плагинами ниже, чтобы попробовать эту функцию.
Режим плагина
Установка
pnpm add @univerjs/find-replace @univerjs/sheets-find-replacenpm install @univerjs/find-replace @univerjs/sheets-find-replaceyarn add @univerjs/find-replace @univerjs/sheets-find-replacebun add @univerjs/find-replace @univerjs/sheets-find-replaceИспользование
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'import { UniverFindReplacePlugin } from '@univerjs/find-replace'import FindReplaceEnUS from '@univerjs/find-replace/locale/en-US'import { UniverSheetsFindReplacePlugin } from '@univerjs/sheets-find-replace'import '@univerjs/find-replace/lib/index.css'import '@univerjs/sheets-find-replace/facade'const univer = new Univer({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( FindReplaceEnUS, ), },})univer.registerPlugin(UniverFindReplacePlugin)univer.registerPlugin(UniverSheetsFindReplacePlugin)Поддержка мобильных устройств
Сначала настройте мобильный редактор. В коде инициализации режима плагинов на этой странице замените указанные настольные регистрации мобильными экспортами тех же пакетов до открытия документа. Сохраните модели, стили, локализации и импорты Facade; не регистрируйте оба варианта.
| Пакет | Настольная регистрация | Мобильная регистрация |
|---|---|---|
@univerjs/find-replace | UniverFindReplacePlugin | UniverFindReplaceMobileUIPlugin |
@univerjs/sheets-find-replace | UniverSheetsFindReplacePlugin | UniverSheetsFindReplaceMobileUIPlugin |
Режим предустановки
Установка
pnpm add @univerjs/preset-sheets-find-replacenpm install @univerjs/preset-sheets-find-replaceyarn add @univerjs/preset-sheets-find-replacebun add @univerjs/preset-sheets-find-replaceИспользование
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'import { UniverSheetsFindReplacePreset } from '@univerjs/preset-sheets-find-replace'import UniverPresetSheetsFindReplaceEnUS from '@univerjs/preset-sheets-find-replace/locales/en-US'import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'import '@univerjs/preset-sheets-core/lib/index.css'import '@univerjs/preset-sheets-find-replace/lib/index.css'const { univerAPI } = createUniver({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( UniverPresetSheetsCoreEnUS, UniverPresetSheetsFindReplaceEnUS, ), }, presets: [ UniverSheetsCorePreset(), UniverSheetsFindReplacePreset(), ],})Facade API
Полные определения типов Facade API доступны в справочнике Facade API.
Импорт
Примечание о режиме плагина
Импортировать пакет Facade вручную требуется только в режиме плагина. В режиме предустановки соответствующий пакет Facade уже включён, поэтому дополнительный импорт не нужен.
import '@univerjs/sheets-find-replace/facade'Создание средства поиска текста
univerAPI.createTextFinderAsync() создаёт средство поиска текста и возвращает экземпляр FTextFinder.
Некоторые методы FTextFinder:
| Метод | Описание |
|---|---|
| findAll | Возвращает все совпавшие ячейки текущего листа; последняя совпавшая ячейка становится текущей |
| findNext | Возвращает следующую совпавшую ячейку текущего листа, если она есть, и делает её текущей |
| findPrevious | Возвращает предыдущую совпавшую ячейку текущего листа, если она есть, и делает её текущей |
| getCurrentMatch | Возвращает текущую совпавшую ячейку текущего листа |
| matchCaseAsync | Настраивает учёт регистра: при значении true поиск учитывает регистр, иначе игнорирует его |
| matchEntireCellAsync | Настраивает совпадение со всей ячейкой: при значении true поиск сопоставляет всё значение ячейки, иначе — его часть |
| matchFormulaTextAsync | Настраивает поиск по тексту формулы: при значении true поиск выполняется по тексту формулы, иначе — по значению |
| replaceAllWithAsync | Заменяет заданным текстом все найденные совпадения |
| replaceWithAsync | Заменяет заданным текстом текущее совпадение |
| ensureCompleteAsync | Гарантирует завершение поиска. Особенно полезен после смены текущего листа |
// Assume the current sheet is empty sheet.const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Set some values to the range A1:D10.const fRange = fWorksheet.getRange('A1:D10')fRange.setValues([ [1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7], [5, 6, 7, 8], [6, 7, 8, 9], [7, 8, 9, 10], [8, 9, 10, 11], [9, 10, 11, 12], [10, 11, 12, 13],])// Create a text-finder to find the text '5'.const textFinder = await univerAPI.createTextFinderAsync('5')// Find all cells that contain the text '5'.const matchCells = textFinder.findAll()matchCells.forEach((cell) => { cell.getA1Notation() // D2, C3, B4, A5})Насколько полезно это руководство?