찾기 및 바꾸기
찾기 및 바꾸기 기능을 사용하면 스프레드시트에서 특정 내용을 빠르게 검색하고 바꿀 수 있습니다. 다양한 일치 옵션을 지원하므로 데이터를 효율적으로 처리할 수 있습니다.
아래 전체 플러그인 예제에서 찾기 및 바꾸기 패널을 열어 이 기능을 사용해 보세요.
플러그인 모드
설치
Shell
pnpm add @univerjs/find-replace @univerjs/sheets-find-replaceShell
npm install @univerjs/find-replace @univerjs/sheets-find-replaceShell
yarn add @univerjs/find-replace @univerjs/sheets-find-replaceShell
bun add @univerjs/find-replace @univerjs/sheets-find-replace사용법
TypeScript
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 |
프리셋 모드
설치
Shell
pnpm add @univerjs/preset-sheets-find-replaceShell
npm install @univerjs/preset-sheets-find-replaceShell
yarn add @univerjs/preset-sheets-find-replaceShell
bun add @univerjs/preset-sheets-find-replace사용법
TypeScript
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 타입 정의는 FacadeAPI에서 확인할 수 있습니다.
가져오기
플러그인 모드 참고
Facade 패키지를 수동으로 가져와야 하는 것은 플러그인 모드뿐입니다. 프리셋 모드에는 해당 Facade 패키지가 이미 포함되어 있으므로 추가로 가져올 필요가 없습니다.
TypeScript
import '@univerjs/sheets-find-replace/facade'텍스트 검색기 만들기
univerAPI.createTextFinderAsync()는 텍스트 검색기를 만들고 FTextFinder 인스턴스를 반환합니다.
FTextFinder의 주요 멤버 메서드는 다음과 같습니다.
| 메서드 | 설명 |
|---|---|
| findAll | 현재 시트에서 일치하는 모든 셀을 가져옵니다. 현재 일치 셀은 마지막으로 일치한 셀입니다. |
| findNext | 현재 시트에서 다음으로 일치하는 셀이 있으면 해당 셀을 반환하고 현재 일치 셀을 그 셀로 이동합니다. |
| findPrevious | 현재 시트에서 이전에 일치하는 셀이 있으면 해당 셀을 반환하고 현재 일치 셀을 그 셀로 이동합니다. |
| getCurrentMatch | 현재 시트의 현재 일치 셀을 가져옵니다. |
| matchCaseAsync | 대/소문자 구분 옵션을 설정합니다. true이면 대/소문자를 구분하고, 그렇지 않으면 구분하지 않습니다. |
| matchEntireCellAsync | 셀 전체 일치 옵션을 설정합니다. true이면 셀 값 전체와 일치해야 하며, 그렇지 않으면 셀 값의 일부와 일치해도 됩니다. |
| matchFormulaTextAsync | 수식 텍스트 일치 옵션을 설정합니다. true이면 수식 텍스트를 대상으로 검색하고, 그렇지 않으면 값을 대상으로 검색합니다. |
| replaceAllWithAsync | 일치하는 모든 텍스트를 지정한 텍스트로 바꿉니다. |
| replaceWithAsync | 현재 일치하는 텍스트를 지정한 텍스트로 바꿉니다. |
| ensureCompleteAsync | 찾기 작업이 완료되도록 보장합니다. 특히 현재 시트가 변경된 경우 이 메서드를 사용해 찾기 작업이 완료되었는지 확인합니다. |
TypeScript
// 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})이 가이드는 어떠셨나요?