github dream-num/univer v0.25.0
πŸ“ Release v0.25.0

3 hours ago

🎊 Univer@v0.25.0

Important

πŸ“’ 1.0 Release Coming Soon

We are working hard on the official release of Univer 1.0, which will be a major milestone for the project. Stay tuned!

🚧 Work In Progress

The following features are actively under development. Some modules are already available, and the full experience will be delivered gradually in subsequent versions:

Direction Status Description
Performance Optimization πŸ”„ Ongoing Performance tuning for the core engine and rendering pipeline
Base εŠŸθƒ½ πŸ”„ In development Multi-dimensional table (Base) functionality
Docs Features πŸ”„ In development Document editing and reusable editor components
Slides Features πŸ”„ In development Development and iteration of slide editing capabilities

πŸ“ Docs Table

Docs Table receives significant enhancements across both Univer and Univer Pro, delivering a more complete table editing experience in documents.

Univer:

  • Polished table rendering, selection behavior, and contextual menus
  • Restored document zoom functionality with smoother zoom controls
  • Added Facade APIs for programmatic table insertion and manipulation
  • Improved paragraph spacing defaults for modern document layouts
  • Enhanced clipboard support for tables (copy, paste, and paste-without-formatting)

Univer Pro:

  • Full table editing capabilities: insert/delete rows and columns, merge/unmerge cells, resize rows/columns, and move tables
  • Table borders: set border styles, widths, colors, and background fills
  • Table sorting and header row configuration
  • Column type configuration support
  • Horizontal scrollbar support for wide tables
  • Canvas-based table rendering with drag-to-resize interactions
  • Comprehensive Facade APIs for table operations

Facade API Example:

const doc = univerAPI.getActiveDocument();

// Insert a 3x4 table at the current cursor position
doc.insertTable(3, 4);

// Insert a table at a specific position
doc.insertTable(3, 4, { startIndex: 10 });

🎨 Docs Ecosystem (Pro)

A suite of new document editing modules is now available in Univer Pro, enabling rich document authoring beyond tables:

Module Description
Docs Shape Insert and edit shapes in documents, with shape text editing and floating toolbars
Docs Callout Insert callout blocks with customizable background colors and an emoji picker
Docs Code Block Insert code blocks with syntax highlighting and language selection
Docs List Enhanced list editing with custom bullets, prefix/suffix settings, and start-number configuration
Docs Quote Insert quote blocks for styled quotations

These modules are integrated with the license plugin and include configuration schemas for customization.


πŸ“Š Pivot Table Facade API (Pro)

The pivot table facade API has been enhanced with more comprehensive control:

  • Added FPivotTable facade class with methods for updating fields, source ranges, collapse states, and value filters
  • Added pivot-related enums to FEnum for easier programmatic configuration
  • Added a dedicated pivot table facade example

🌍 Internationalization

Thai Language Support

Univer now supports Thai language text rendering in documents, including proper character shaping and line breaking for Thai scripts.

New Language Support

This release adds support for 7 new languages across 34 packages, expanding Univer's global reach:

  • ar-SA Arabic (Ψ§Ω„ΨΉΨ±Ψ¨ΩŠΨ©)

  • de-DE German (Deutsch)

  • id-ID Indonesian (Bahasa Indonesia)

  • it-IT Italian (Italiano)

  • pl-PL Polish (Polski)

  • pt-BR Portuguese Brazilian (PortuguΓͺs Brasileiro)

  • zh-HK Chinese Traditional Hong Kong (繁體中文 香港)

  • PR: #6958


⚠️ Breaking Changes

Locale Namespace Restructure

All locale keys have been restructured to use package-name prefixes as namespaces. This is a global change across nearly all packages.

Before After
'button.confirm' 'find-replace.button.confirm'
'permission.filterErr' 'sheets-filter-ui.permission.filterErr'

Each package now owns exactly one namespace that matches its package name. Core and UI layers of the same feature use different namespaces (e.g., sheets-filter and sheets-filter-ui).

If you maintain custom locale overrides or custom packages, update your locale keys accordingly.

As part of this restructure, the following language packages have been added or removed. Update your imports accordingly:

Added:

  • @univerjs/data-validation
  • @univerjs/docs-thread-comment-ui
  • @univerjs/sheets-data-validation
  • @univerjs/sheets-filter
  • @univerjs/sheets-hyper-link
  • @univerjs/sheets-table
  • @univerjs-pro/edit-history-loader

Removed:

  • @univerjs/sheets-find-replace (Locale files deleted entirely)
  • @univerjs/sheets-sort (Locale content merged into sheets-sort-ui)

Example:

// Added packages: import their locales if you use them standalone
+ import dataValidationLocale from '@univerjs/data-validation/locale/en-US';
+ import sheetsDataValidationLocale from '@univerjs/sheets-data-validation/locale/en-US';
+ import sheetsFilterLocale from '@univerjs/sheets-filter/locale/en-US';
+ import sheetsHyperLinkLocale from '@univerjs/sheets-hyper-link/locale/en-US';
+ import sheetsTableLocale from '@univerjs/sheets-table/locale/en-US';

// Removed packages: remove their locale imports
- import sheetsSortLocale from '@univerjs/sheets-sort/locale/en-US';

Removed Deprecated Data Validation APIs

The following deprecated FWorkbook APIs in @univerjs/sheets-data-validation have been removed:

Removed API Alternative
FWorkbook.addDataValidation Use FRange.setDataValidation or commands directly
FWorkbook.removeDataValidation Use FRange.setDataValidation(null) or commands directly
FWorkbook.updateDataValidation Use FRange.setDataValidation or commands directly
FWorkbook.getDataValidation Use FWorksheet.getDataValidations
FWorkbook.getValidatorStatus Use FWorksheet.getValidatorStatusAsync

Additionally, list option serialization utilities have been moved from sheets-data-validation to sheets. If you were importing these utilities directly, update your imports.


⚑ Performance & Stability

Memory Leak Fixes

Fixed memory leaks in the before-close service and ribbon service caused by improper RxJS subscription cleanup.

Frozen Area Ghosting

Fixed ghosting artifacts in frozen areas when scrolling sheets.

Large Spreadsheet Scrolling Lag Fix

Fixed scrolling lag in large spreadsheets, improving scrolling smoothness.

Collaboration Image Upload

Fixed pasted base64 images not being uploaded correctly in collaborative document editing.


πŸ› Bug Fixes

  • Find & Replace (#6970): Fixed abnormal scrolling behavior when navigating matches across worksheets.
  • Formula Facade (#6947): Fixed an issue with the onCalculationResultApplied API in worker threads.
  • Filter (#6954): Facade commands now register correctly without requiring the UI plugin.
  • Table (#6964, #6965): Fixed an issue where Table filter rows affected other worksheets.
  • Table (#6946): Fixed issues related to Table formula references.
  • Sheet (#6976): Fixed an issue where scrolling a Sheet upward before reaching the boundary triggered scrolling in the outer container.
  • Sheet (#6957): Fixed an issue where setting custom on empty cells caused borders to disappear in some scenarios.

Thanks to community contributor @IMSupperkaka for their contribution to this release:

  • Data Validation (#6942): Fixed missing commas in dropdown list options.

πŸ“’ Join the Discussion

Have questions, feedback, or ideas? Reach out to us at:


Full Changelog (2026-05-30)

Don't miss a new univer release

NewReleases is sending notifications on new releases.