排序

排序功能允许用户对电子表格中的数据进行排序,以便更好地组织和分析信息。它支持多种排序方式,包括升序、降序和自定义排序,帮助用户快速找到所需数据。

预设模式

安装

Shell
pnpm 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-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()`

你觉得这篇文档如何?

© 2026 DreamNum Co., Ltd.