🐢 Release 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!
This version only includes some bug fixes in Univer Pro, with no feature updates.
Have questions, feedback, or ideas? Reach out to us at:
Full Changelog (2026-06-27)
📐 Release 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!
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 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 });
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.
The pivot table facade API has been enhanced with more comprehensive control:
- Added
FPivotTablefacade class with methods for updating fields, source ranges, collapse states, and value filters - Added pivot-related enums to
FEnumfor easier programmatic configuration - Added a dedicated pivot table facade example
Univer now supports Thai language text rendering in documents, including proper character shaping and line breaking for Thai scripts.
- PR: #6960
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
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 intosheets-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';
- PR: #6948
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.
Fixed memory leaks in the before-close service and ribbon service caused by improper RxJS subscription cleanup.
- PR: #6991
Fixed ghosting artifacts in frozen areas when scrolling sheets.
- PR: #6969
Fixed scrolling lag in large spreadsheets, improving scrolling smoothness.
- PR: #6959
Fixed pasted base64 images not being uploaded correctly in collaborative document editing.
- PR: #6985
- Find & Replace (#6970): Fixed abnormal scrolling behavior when navigating matches across worksheets.
- Formula Facade (#6947): Fixed an issue with the
onCalculationResultAppliedAPI 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
customon 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.
Have questions, feedback, or ideas? Reach out to us at:
Full Changelog (2026-05-30)
📐 Release v0.24.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!
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 |
| Docs Features | 🔄 In development | Development of document editing and reusable editor components |
| Slides Features | 🔄 In development | Development and iteration of slide editing capabilities |
Outline (row/column grouping) is now officially available in Univer Pro. You can group rows or columns to create collapsible sections, making large spreadsheets easier to navigate and read.
Installation:
If you are using the advanced preset, Outline is already included.
pnpm add @univerjs/preset-sheets-advanced
If you prefer to install the plugins individually:
pnpm add @univerjs-pro/sheets-outline @univerjs-pro/sheets-outline-ui
Register Plugins:
import { UniverSheetsOutlinePlugin } from '@univerjs-pro/sheets-outline';
import { UniverSheetsOutlineUIPlugin } from '@univerjs-pro/sheets-outline-ui';
univer.registerPlugin(UniverSheetsOutlinePlugin);
univer.registerPlugin(UniverSheetsOutlineUIPlugin);
Key Features:
- Group and ungroup rows or columns via the outline gutter, right-click context menu, or keyboard shortcuts
- Collapse and expand groups to show or hide detail rows/columns
- Automatic outline updates when rows or columns are inserted, deleted, or moved
- Permission controls for collaborative scenarios
- Full Facade API support for programmatic control
Facade API Example:
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
// Group rows 2 to 6
fWorksheet.addRowOutline(1, 5);
// Group columns B to E
fWorksheet.addColumnOutline(1, 4);
// Get all row outlines
const rowOutlines = fWorksheet.getDimensionOutlines('row');
// Collapse the first group
if (rowOutlines[0]) {
fWorksheet.setDimensionOutlineCollapsed(rowOutlines[0].id, true);
}
// Clear outlines in a range
fWorksheet.clearDimensionOutlines('row', 1, 10);
A new Panel component has been added to @univerjs/design and @univerjs/ui, providing a standardized container for sidebar panels.
The Sidebar now supports:
-
Accessibility improvements: Better keyboard navigation and ARIA attributes
-
Resize support: Users can drag to resize the sidebar width
-
PR: #6938
The following FWorksheet APIs have been removed. Use the recommended alternatives:
| Removed API | Alternative |
|---|---|
FWorksheet.onCellDataChange |
univerAPI.addEvent(univerAPI.Event.SheetValueChanged, ...) |
FWorksheet.onBeforeCellDataChange |
univerAPI.addEvent(univerAPI.Event.BeforeSheetEditEnd, ...) |
FWorksheet.getLastColumns |
FWorksheet.getLastColumn |
- PR: #6919
IGlobalZoneService and related APIs have been removed. Use IUIPartsService with BuiltInUIPart.GLOBAL instead.
- PR: #6930
Properly managed RxJS subscriptions across collaboration cursors, live-share, pivot tables, and other modules to prevent memory leaks in long-running applications.
- PR: #4864
- Color Picker (#6912): Fixed hue value normalization for values >= 360 and resolved stale closure issues in event handlers.
- Sheet Drawing (#6929): Fixed image IDs not being passed to the builder correctly.
- Toolbar Icon (#6928): Fixed the clear-all icon in the toolbar.
- Outline Overlays (#6922): Fixed header overlay issues when using outline features.
- Outline Gutter (#4850): Fixed gutter control anomalies in outline interactions.
- Outline Warnings (#4859): Added warnings when attempting to ungroup an incomplete range.
Have questions, feedback, or ideas? Reach out to us at:
Full Changelog (2026-05-23)
⚡ Release v0.23.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!
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; the formula engine has already seen improvements |
| RTL Language Support | 🔄 UI complete, rendering layer in progress | Interface layout and component direction are adapted; RTL support for document/sheet content rendering is still under development |
| Outline (Grouping/Outlining) | 🔄 In development | Outline (row/column grouping and collapsing) feature |
| Slides Features | 🔄 In development | Development and iteration of slide editing capabilities |
Added support for context-aware Ribbon Tabs. The toolbar now dynamically displays the most relevant functional tabs based on your currently selected object or operation state, reducing distractions from irrelevant options and keeping commonly used tools within easy reach.
Usage Example:
Register a contextual tab and show/hide it at the appropriate time:
import { RibbonPosition, IRibbonService } from '@univerjs/ui';
// 1. Mark as contextual during menu registration
menuManagerService.mergeMenu({
[MenuManagerPosition.RIBBON]: {
['custom-contextual-tab']: {
order: 99,
title: 'Chart Tools',
contextual: true, // Mark as contextual tab
// ...menu items
},
},
});
// 2. Control visibility in business logic
const ribbonService = accessor.get(IRibbonService);
// Show contextual tab and auto-activate
ribbonService.showContextualTab('custom-contextual-tab', { activate: true });
// Hide a single contextual tab
ribbonService.hideContextualTab('custom-contextual-tab');
// Hide all contextual tabs
ribbonService.hideAllContextualTabs();
- PR: #6902
This update includes multiple performance optimizations that significantly improve the smoothness of complex documents.
Both the OSS and Pro formula engines have seen significant improvements. The OSS version reduces calculation time by 15.7% in a 500K formula scenario and resolves the previous out-of-memory (OOM) issue that prevented calculation in ultra-large files. The Pro version further delivers 1.2–5.4× acceleration for real-world business scenarios.
OSS Version
| Test File | Formula Count | Before | After | Improvement |
|---|---|---|---|---|
| Synthetic_500K_MixedFormulas | 500,000 | 162.68 s | 137.13 s | -15.7% |
| RealWorld_Engineering_68K | 68,576 | OOM | 34.54 s | From failure to success |
| RealWorld_Financial_33K | 33,617 | 1.18 s | 1.34 s | Within margin of variation |
| Template_1.4M_Summary | 1,463,721 | OOM | 248.62 s | From failure to success |
Pro Version
| Test File | Formula Count | Before | After | Speedup |
|---|---|---|---|---|
| Synthetic_500K_MixedFormulas | ~500,000 | 158.82 s | 132.18 s | 1.20× |
| RealWorld_Engineering_68K | ~68,576 | 35.71 s | 6.65 s | 5.38× |
| RealWorld_Financial_33K | ~33,617 | 1.40 s | 1.22 s | 1.15× |
| Template_1.4M_Summary | ~1,463,721 | 278.67 s | 103.62 s | 2.69× |
- Scroll Rendering (#6905): Fixed scroll stuttering for a smoother scrolling experience in long spreadsheets.
- Sheet Interceptor (#6906): Streamlined hot paths to reduce rendering overhead from each cell operation.
- Memory Leaks (#6896): Comprehensive investigation and fixes for memory leaks caused by RxJS subscriptions not being properly disposed of, making long-running applications more stable.
- Lifecycle Safety (#6898): Fixed a race condition where commands could still execute after an instance was destroyed.
- Formula Calculation on Creation (#6903): Fixed an issue where formulas were not automatically calculated when creating a new workbook.
- Float DOM API (#6904): Fixed abnormal behavior in
FWorksheet.removeFloatDom. - Calculation Result Callback (#6907): Fixed
onCalculationResultAppliednot correctly waiting for other formula results such as conditional formatting and data validation. - Server Upload State (Univer Server): Fixed an issue where after uploading a file exceeding the size limit, the server-side state was not properly reset, causing subsequent file uploads of any size to fail.
- Pivot Table (Univer Pro): Fixed component anomalies in the Pivot Table Tabular layout, and added support for hiding subtotal rows in this layout.
Have questions, feedback, or ideas? Reach out to us at:
Full Changelog (2026-05-18)
🎉 Release v0.22.1
Univer Sheets features are becoming more stable, and we are planning for the release of version 1.0. If you have any suggestions, please submit them in our issues to help us shape the future of Univer.
If you're eager to explore Univer, check out our getting started documentation. Dive into the world of collaborative document, spreadsheet, and presentation editing powered by Univer!
- Fix the issue of comment related styles displaying abnormally in dark mode. #6881
- Fix the issue of cell image alignment displaying abnormally when affected by word wrap. #6885
- Optimize the experience in read-only mode by allowing text selection in the formula bar. #6886
- Fix the issue of new sheets created by the "Add Sheet" button introduced in version 0.22.0 having duplicate names. #6887
- Fix the issue of horizontal scrollbar appearing in the "Change Color" panel of the right-click menu in the sheet bar. #6892
- Sparklines
- Fix the issue of high point and low point markers being ineffective in line sparklines.
- Fix the issue of abnormal functionality of the range selection when inserting sparklines after opening and closing the editing panel.
- Fix the issue of the marker color setting button being unresponsive in React 18 environment.
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
Full changelog (2026-05-13)
- avoid BehaviorSubject replay loop in bufferWhen (#6882) (dfc5de7)
- cellImage: fix cell image align render (#6885) (9b927c5)
- comment: fix the issue of comments in dark mode (#6881) (192e607)
- core: fix bullet list preset symbol (#6884) (b71cbab)
- sheets-ui: allow selecting formula bar content in read-only mode (#6886) (02017c2)
- sheets: ensure unique sheet name when inserting with explicit name (#6887) (628bbf9)
- ui: add box-sizing to context menu item for proper sizing (#6892) (6ab5e91)
🎉 Release v0.22.0
Univer Sheets features are becoming more stable, and we are planning for the release of version 1.0. If you have any suggestions, please submit them in our issues to help us shape the future of Univer.
If you're eager to explore Univer, check out our getting started documentation. Dive into the world of collaborative document, spreadsheet, and presentation editing powered by Univer!
UniverDrawingPluginadded a new configuration itemallowImageSizeto support limiting the maximum size of uploaded images. #6865UniverSheetsUIPluginadded a new configuration itemfooter.addSheetButtonConfigto customize the behavior of the "Add Sheet" button: #6866show: Whether to show the add sheet button, default istrue.defaultRowCount: The default number of rows for a new sheet, default is1000.defaultColumnCount: The default number of columns for a new sheet, default is20.
- Image Related
- Fix the issue of floating images not updating their position correctly after hiding rows/columns. #6842
- Fix the issue of incorrect hot zone calculation for the zoom button in cell image preview. #6845
- Copy and Paste
- Fix the issue of some number formatted text copied from Excel not being parsed correctly. #6844
- Fix the issue of character loss when copying text containing
<>from Univer to Excel. #6850
- Permission Control
- Fix the issue of toolbar disabled status not refreshing in time after updating the current range permission point. #6853
- Fix the issue of being able to modify styles within a full selection (
Ctrl + A) that contains non-editable areas. #6853 - Fix the issue of the API for setting borders not being subject to permission control. #6853
- Fix the issue of defined name related operations not being subject to permission control. #6857
- Fix the issue of the disabled status listener for the context menu in the sheet bar not being triggered. #6877
- Others
- Fix the issue of the submenu in the context menu not disappearing when clicking it. #6858
- Fix the issue of text containing
\nnot wrapping correctly in the cell when word wrap is enabled. #6859 - Fix the issue of row height not updating correctly after clearing cell content or styles. #6870
- Optimize the performance of
Lexer.treeBuilderin scenarios with a large number of defined names. #6873 - Optimize the boundary cases where the width and height of the last row/column cannot be changed via UI. #6876
- Fix the issue of chart styles being reset after copy/paste/delete/undo in scenarios where the chart style is a non-default style.
- Optimize the display style of history records when there are many operators.
- Fix the issue of triangle shape adjustment nodes not being able to be dragged to the right.
Special thanks to community contributor @kenny-not-dead for contributions in this version:
- Fix the issue of page margins in doc page settings supporting negative values. #6838
- Fix the issue of paragraph alignment in doc not being highlighted. #6854
- Fix the issue of unordered lists in doc not being highlighted. #6856
Special thanks to community contributor @IMSupperkaka for contributions in this version:
- Fix the issue of shortcuts (bold/italic/underline/strikethrough) not working in cell editing state. #6851
Special thanks to community contributor @getmateri for contributions in this version:
- Fix the issue of styles not being cleared in target cells when copy filling blank cells in some scenarios. #6869
- Fix the issue of string condition values being lost after importing when the conditional format is "equal to a certain string".
- Fix the issue of content loss when importing certain charts.
- SDK has been updated to version 0.22.0.
UniverSheetsCorePresethas been updated to support thefooter.addSheetButtonConfigconfiguration item.UniverSheetsDrawingPresethas been updated to support theallowImageSizeconfiguration item.
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
Full changelog (2026-05-09)
- active alignment style (#6854) (15cdf62)
- active list value (#6856) (0ac415c)
- cellImage: fix defects in image enlargement hot zone calculation (#6845) (0e30fea)
- copy: fix unescaped special characters such as
<>in copied HTML (#6850) (7ba9b6a) - definedName: add defined name permission controller (#6857) (44dbe3b)
- definedName: fix lexer.treeBuilder performance (#6873) (ed89f1f)
- drawing: fix floating images did not update their position along with hidden rows and columns (#6842) (a46d82b)
- fix copy html error (#6861) (eca1af9)
- fix when cell wrapping is enabled, cell text must wrap to the next line after
\n(#6859) (c4f3ce5) - optimize auto row height recalculation when clearing cell content or styles (#6870) (ef63690)
- optimize boundary cases where the width and height of the last row/column cannot be changed via UI (#6876) (bbd5294)
- paste: fix some number formatted text copied from Excel was not parsed correctly (#6844) (f171450)
- permission: fix some issues with permission control (#6853) (5af6a73)
- permission: fix the disabled status listener for the context menu in the sheet bar (#6877) (67371e8)
- set min value in page settings (#6852) (4990505)
- sheets-ui: allow inline format shortcuts to fire inside cell editor (#6851) (4b98f87)
- sheets: clear styles when copy filling blank cells (#6869) (32a2c98)
- ui: fix the submenu in the context menu did not disappear when click it (#6858) (0def2e2)
🎉 Release v0.21.1
Univer Sheets features are becoming more stable, and we are planning for the release of version 1.0. If you have any suggestions, please submit them in our issues to help us shape the future of Univer.
If you're eager to explore Univer, check out our getting started documentation. Dive into the world of collaborative document, spreadsheet, and presentation editing powered by Univer!
- Refactor the API related to defined names:
univerAPI.newDefinedNamehas been replaced withFWorkbook.newDefinedNameBuilder. #6826
- Fix the issue of
PermissionServicenot registered when removing protected ranges. #6821 - Fix the issue of not validating the legality of names when adding defined names through API. #6826
- Optimize the DOM performance and related algorithm performance of list rendering in scenarios with a large number of defined names. #6829
- Fix the issue of
ClearSelectionContentCommandexecution error introduced in version 0.21.0. #6829 - Fix the issue of floating images in the current workbook disappearing when creating a hidden workbook. #6833
- Add
.jsextension to the deep import ofopentype.jsfor compatibility with Node.js ESM. #6835 - Fix the issue of
document is not definederror when callingFRange.setValuein a Node.js environment. #6834 - Optimize the number extension rules in the auto-fill feature. #6837
- Fix the issue of collaborator cursors being invisible in collaborative editing introduced in version 0.16.0.
- Fix the issue of the API for subscribing to changes in online personnel in the collaborative room not being triggered correctly when personnel leave.
Special thanks to community contributor @getmateri for contributions in this version:
- Optimize the formula bar name box to create a defined name for the workbook range based on the current selection when pressing Enter. #6705
- Fix the issue of not being able to continue moving the selection with arrow keys after pressing Enter in the formula bar name box to jump to the corresponding selection. #6705
- Fix the issue of hidden drawing elements being incorrectly displayed when importing Excel files.
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
Full changelog (2026-04-25)
- autofill: fix extend number rule of auto fill (#6837) (8fe1122)
- conditionformat: fix condition format rule stopif true err (#6823) (79ac910)
- definedName: optimize performance issues related to defined name (#6829) (8c15220)
- drawing: fix drawing visible in import (#6822) (e84d694)
- engine-render: add .js extension to opentype.js deep import for Node.js ESM compatibility (#6835) (8c226ed)
- fix handleWorksheetRangePermissionIsEmpty error (#6821) (da009a8)
- fix the
document is not definederror that occurred when usingFRange.setValuein a Node.js environment (#6834) (0b1ac31) - fix the issue of drawings will remove when creating a unit with makeCurrent is false (#6833) (efb3980)
- scroll: gap config (#6828) (48fb4c2)
- scroll: initial for gap zero (#6832) (6e8f767)
- sheets-ui: fix incorrect JSDoc for attachRangePopup (#6824) (dba94e9)
- sheets-ui: restore name box range naming flow (#6705) (38eec33)
🎉 Release v0.21.0
Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
If you're eager to explore Univer, check out our getting started documentation. Dive into the world of collaborative document, spreadsheet, and presentation editing powered by Univer!
- Refactor and fix issues related to permission control APIs, with the following changes: #6804
- Remove the
FPermissionclass and all its creation methods. - Remove all APIs that listen for permission changes.
- Adjust
FPermission.setPermissionDialogVisibletoFWorkbookPermission.setPermissionDialogVisible. - Remove
setPointandgetPointrelated methods fromFRangePermission. - Add
setPointandgetPointrelated methods toFRangeProtectionRule. - The
setPointmethod is used to update the permission point, which will synchronize the server status in collaborative editing scenarios:false: This permission point requires at least theownerrole.true: This permission point requires at least theeditorrole.
- When creating a protected range rule, remove the
allowEditfield from the options parameter, and use theallowUsersfield to determine whether it is "only me" or "specified users" who can edit.
- Remove the
- Refactor and improve the user experience and accessibility of the collaboration status component in the upper right corner of the collaborative document, with the following changes:
- The component no longer displays text labels, only icons, to reduce visual interference.
- Show detailed status tips on mouse hover.
- Add correct ARIA attributes (role, aria-live, aria-label).
- Make the offline status clickable and support keyboard input (Enter / Space).
- Add a spinning animation for status synchronization.
- Fix the issue of
IRepeatLastActionServicenot registered on mobile. #6806 - Fix some API operations that were not blocked by permission control. #6815
- Fix some known issues with shapes.
- Fix the issue of conditional formatting anomalies after importing some low-version Excel files.
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
Full changelog (2026-04-18)
- aligan: update (#6798) (f5db141)
- formula: optimize the logic of inverted index (#6818) (79d2c30)
- mobile: fix dependency not registered (#6806) (2a010b6)
- permission: fix some API operations that were not blocked by permission control (#6815) (3d6f418)
- protocol: correct method name from IUpdateCollaborator to UpdateCollaborator (#6817) (3479e20)
🎉 Release v0.20.1
Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
If you're eager to explore Univer, check out our getting started documentation. Dive into the world of collaborative document, spreadsheet, and presentation editing powered by Univer!
- Fix cell editing failure in Web Component environment. #6770
- Fix error when canceling hyperlink in some imported Excel files. #6778
- Fix permission issues related to drawing (floating images, charts, shapes). #6779
- Optimize editable user list display logic when permission inheritance is not enabled: support displaying other owner users except itself, and allow adding them as specified editing users. #6782
- Optimize view history: no document editing permission is required, only view history permission is needed, and remove the history management permission point. #6784
- Fix the issue of move range undo exception. #6788
- Fix the issue of incorrect current version marking in history.
- Fix the issue of Toast prompt not closing after canceling print.
- Fix the issue of export function server-side calculation configuration failure.
- Fix the issue of charts not updating when there are hidden rows and columns changes in the chart data source range.
- Fix the issue of error when importing empty Excel file through
univerAPI.importXLSXToSnapshotAsync.
Special thanks to community contributor @lyr0430 for contributions in this version:
- Fix the issue of onOpen callback not being triggered when the sidebar is opened. #6636
Special thanks to community contributor @kenny-not-dead for contributions in this version:
- Fix the issue of resetting to default value after double-clicking font/fontSize/fontColor/cellColor. #6664
- Fix the issue of not being able to continue input after selecting font in edit state. #6665
- Fix the issue of error when applying font in font input box. #6666
Special thanks to community contributor @IMSupperkaka for contributions in this version:
- Fix the issue of incorrect clickable area calculation for cell images. #6747
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
Full changelog (2026-04-11)
- after select font family cant write text (docs and sheets) (#6665) (c1f0b71)
- docs: double click trigger defaule value (fs,ff,cl,bg) (#6664) (bbb41bb)
- fix font family search (#6793) (0410bd8)
- fix the issue of move range undo (#6788) (e00a9e2)
- permission: fix permission issues related to drawing (floating images, charts, shapes) (#6779) (51304b0)
- scene: fix code lint warning err (#6785) (2144496)
- sheets-ui: fix doc drawing skeleton calc wrong (#6747) (3bf7f2d)
- sheets-ui: improve focus handling EditorContainer (#6770) (7072024)
- ui: invoke onOpen callback when sidebar is opened (#6636) (804206b)
- vertical: vertical aligan (#6794) (7225fe1)
🎉 Release v0.20.0
Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
If you're eager to explore Univer, check out our getting started documentation. Dive into the world of collaborative document, spreadsheet, and presentation editing powered by Univer!
- The Drawing-related APIs (floating images, charts, shapes) have been migrated from the UI package to the core package to support usage in Headless mode. For users using the Plugin installation mode, please update the import paths for the Facade APIs:
- New for floating images:
import '@univerjs/sheets-drawing/facade' - UI-related capabilities such as floating DOM still use:
import '@univerjs/sheets-drawing-ui/facade' - Charts:
import '@univerjs-pro/sheets-chart-ui/facade'->import '@univerjs/sheets-chart/facade' - Shapes:
import '@univerjs-pro/sheets-shape-ui/facade'->import '@univerjs/sheets-shape/facade'
- New for floating images:
- Add support for cropping floating images into shapes (entry: image editing panel).
- Add support for image fill in shapes (entry: shape editing panel).
- Add support for importing and exporting floating images cropped into shapes.
- Add support for importing and exporting shapes with image fill.
- Optimize Excel file import performance.
- Add new system integration capabilities:
- Support for idempotent keys.
- Support for passing customer system Metadata.
For usage, see: https://docs.univer.ai/guides/pro/usip and https://docs.univer.ai/guides/pro/api.
- SDK has been updated to version 0.20.0.
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
Full changelog (2026-04-03)