排序
排序功能允许用户对电子表格中的数据进行排序,以便更好地组织和分析信息。它支持多种排序方式,包括升序、降序和自定义排序,帮助用户快速找到所需数据。
预设模式
安装
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 UniverPresetSheetsCoreZhCN from '@univerjs/preset-sheets-core/locales/zh-CN'import { UniverSheetsSortPreset } from '@univerjs/preset-sheets-sort'import UniverPresetSheetsSortZhCN from '@univerjs/preset-sheets-sort/locales/zh-CN'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_CN, locales: { [LocaleType.ZH_CN]: mergeLocales( UniverPresetSheetsCoreZhCN, UniverPresetSheetsSortZhCN, ), }, presets: [ UniverSheetsCorePreset(), UniverSheetsSortPreset(), ],})插件模式
安装
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 SheetsSortUIZhCN from '@univerjs/sheets-sort-ui/locale/zh-CN'import '@univerjs/sheets-sort-ui/lib/index.css'import '@univerjs/sheets-sort/facade'const univer = new Univer({ locale: LocaleType.ZH_CN, locales: { [LocaleType.ZH_CN]: mergeLocales( SheetsSortUIZhCN, ), },})univer.registerPlugin(UniverSheetsSortPlugin)univer.registerPlugin(UniverSheetsSortUIPlugin)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()`你觉得这篇文档如何?