排序
排序功能允許使用者對電子表格中的資料進行排序,以便更好地組織和分析資訊。它支援多種排序方式,包括升序、降序和自訂排序,幫助使用者快速找到所需資料。
篩選與排序學習計畫
先篩選關注的記錄,再按學習進度排序。透過記錄 ID 觀察同一筆資料的位置。
| 記錄 ID | 課程 | 學習進度 |
|---|---|---|
| 1 | Sheets | 86% |
| 2 | Docs | 100% |
| 3 | Slides | 64% |
| 4 | Bases | 92% |
| 5 | Boards | 48% |
| 6 | PDFs | 78% |
可見記錄: 6 / 6
篩選隱藏不符合條件的記錄,排序改變記錄順序。取消篩選後仍可看到全部記錄。
外掛模式
安裝
Shell
pnpm add @univerjs/sheets-sort @univerjs/sheets-sort-uiShell
npm install @univerjs/sheets-sort @univerjs/sheets-sort-uiShell
yarn add @univerjs/sheets-sort @univerjs/sheets-sort-uiShell
bun add @univerjs/sheets-sort @univerjs/sheets-sort-ui使用
TypeScript
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'import { UniverSheetsSortPlugin } from '@univerjs/sheets-sort'import { UniverSheetsSortUIPlugin } from '@univerjs/sheets-sort-ui'import SheetsSortUIZhTW from '@univerjs/sheets-sort-ui/locale/zh-TW'import '@univerjs/sheets-sort-ui/lib/index.css'import '@univerjs/sheets-sort/facade'const univer = new Univer({ locale: LocaleType.ZH_TW, locales: { [LocaleType.ZH_TW]: mergeLocales( SheetsSortUIZhTW, ), },})univer.registerPlugin(UniverSheetsSortPlugin)univer.registerPlugin(UniverSheetsSortUIPlugin)行動裝置支援
先設定行動版編輯器。在本頁外掛模式的初始化程式碼中,將下列桌面版註冊替換為同一套件匯出的行動版外掛,並在開啟文件前完成。保留模型外掛、樣式、語言套件與 Facade 匯入,請勿同時註冊兩個版本。
| 套件 | 桌面版註冊 | 行動版註冊 |
|---|---|---|
@univerjs/sheets-sort-ui | UniverSheetsSortUIPlugin | UniverSheetsSortMobileUIPlugin |
預設模式
安裝
Shell
pnpm add @univerjs/preset-sheets-sortShell
npm install @univerjs/preset-sheets-sortShell
yarn add @univerjs/preset-sheets-sortShell
bun add @univerjs/preset-sheets-sort使用
TypeScript
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'import UniverPresetSheetsCoreZhTW from '@univerjs/preset-sheets-core/locales/zh-TW'import { UniverSheetsSortPreset } from '@univerjs/preset-sheets-sort'import UniverPresetSheetsSortZhTW from '@univerjs/preset-sheets-sort/locales/zh-TW'import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'import '@univerjs/preset-sheets-core/lib/index.css'import '@univerjs/preset-sheets-sort/lib/index.css'const { univerAPI } = createUniver({ locale: LocaleType.ZH_TW, locales: { [LocaleType.ZH_TW]: mergeLocales( UniverPresetSheetsCoreZhTW, UniverPresetSheetsSortZhTW, ), }, presets: [ UniverSheetsCorePreset(), UniverSheetsSortPreset(), ],})Facade API
完整 Facade API 型別定義,請檢視 FacadeAPI
引入
外掛模式提示
僅外掛模式需要手動引入 Facade 套件。預設模式已內建對應的 Facade 套件,無需額外引入。
TypeScript
import '@univerjs/sheets-sort/facade'工作表排序
FWorksheet.sort(colIndex, asc) 方法可以按指定的列對工作表進行排序。
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// 按照第一列升序排序工作表fWorksheet.sort(0)// 按照第一列降序排序工作表fWorksheet.sort(0, false)區域排序
FRange.sort(column) 方法可以按指定的列和順序對給定範圍內的單元格進行排序。
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const fRange = fWorksheet.getRange('D1:G10')// 按照第一列升序排序區域fRange.sort(0)// 按照第一列降序排序區域fRange.sort({ column: 0, ascending: false })// 按照第一列降序,第二列升序排序區域fRange.sort([{ column: 0, ascending: false }, 1])事件監聽
完整事件型別定義,請檢視 Events。
SheetRangeSorted 事件在單元格範圍排序完成後觸發。
TypeScript
const disposable = univerAPI.addEvent(univerAPI.Event.SheetRangeSorted, (params) => { const { workbook, worksheet, range, sortColumn } = params})// 移除事件監聽器,使用 `disposable.dispose()`SheetBeforeRangeSort 事件在單元格範圍排序前觸發。
TypeScript
const disposable = univerAPI.addEvent(univerAPI.Event.SheetBeforeRangeSort, (params) => { const { workbook, worksheet, range, sortColumn } = params // 取消排序操作 params.cancel = true})// 移除事件監聽器,使用 `disposable.dispose()`你覺得這篇文檔如何?