Releases: dream-num/univer
🎉 Release v0.5.5
🎊 [email protected]
🚧 Important Note
This project is still in heavy development, and major API changes are expected. Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
🚀 Getting Started
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!
📊 Univer Sheets
🎉 Highlights
In this release, we are excited to introduce a new set of features and improvements to enhance your Univer experience. Here are the highlights:
-
UniverSheetsPlugin
added new configuration optionautoHeightForMergedCells
to enable automatic height calculation for merged cells #4488 -
Added Facade API: border settings, get styles, enums, etc. #4494
import '@univerjs/sheets/facade'
univerAPI.getActiveWorkbook()
.getActiveSheet()
.getActiveRange()
.setBorder(univerAPI.Enum.BorderType.ALL, univerAPI.Enum.BorderStyleTypes.THIN, '#ff0000');
univerAPI.getActiveWorkbook()
.getActiveSheet()
.getActiveRange()
.getCellStyle()
- Added support for sheet-related events: ActiveSheetChanged, SheetDeleted, SheetHideChanged, SheetMoved, SheetNameChanged, SheetTabColorChanged, SheetValueChanged #4494
import '@univerjs/sheets/facade'
univerAPI.addEvent(univerAPI.Event.Scroll, console.log)
- Added support for sheet UI-related events: Scroll, SelectionMoving, SelectionChanged, ColumnHeaderClick, ColumnHeaderHover, RowHeaderClick, RowHeaderHover, SelectionChanged, SelectionMoving, SheetSkeletonChanged, etc. #4491
import '@univerjs/sheets-ui/facade'
univerAPI.addEvent(univerAPI.Event.Scroll, console.log)
- Added FRange.getValue parameter: when set to
true
, it will return rich text values
import '@univerjs/sheets/facade'
const richTextValues = univerAPI.getActiveWorkbook()
.getActiveSheet()
.getActiveRange()
.getValues(true)
- Added support for number format localization settings #4470
🐞 Bug Fixes
- Refactored cell editor and formula editor in sheet UI module #4384
- Drop fill or copy-paste will not carry
custom
property #4503 - Fixed data validator issue #4477
- Fixed Facade API incorrect async calls #4482
- AlphaSlider style optimization #4486
📝 Univer Docs
- Fixed known issues
🌐 Univer Server
- Fixed known issues
📢 0.6.0 Preview
Important
The development of version 0.6.0 is currently underway. Starting with this release, Univer will support integration with projects using React@19 . However, this update may introduce breaking changes for users relying on React@16 or Univer UMD builds.
If you have any questions or concerns, please feel free to share your suggestions and feedback via GitHub Issues.
📢 Univer Go
Univer Go 0.0.8 has been released, integrating AI, logging, and the latest Univer SDK features. You don't need to configure complex development environments - just code and share your collaborative spreadsheet applications. Try it now! Univer Go
📢 Join the Conversation
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
📝 Changelog
Full changelog (2025-01-20)
Bug Fixes
- add selection facade API (#4467) (cc4ad5f)
- bind multiple times for UIEvent after dispose and create again (#4500) (5e6cd64)
- customize auto height for merged cell (#4488) (0c2f6b6)
- design: add hex format support for HSV conversion of
ColorPicker
(#4518) (f47408e) - disable jsdoc/tag-lines rule and add ignore comments in FBase classes (#4495) (23af713)
- facade: make facade sync (#4482) (447f991)
- facade: sheets event facade (#4485) (bd9da5d)
- facade: support get rich-text by getValue (#4523) (d845d95)
- fix source error (#4505) (a4108c5)
- float dom event (#4514) (4d13d75)
- formula: fix bug in judging whether the value is in number format (#4493) (5d0b397)
- numfmt: use next in writeCellInterceptor (#4490) (293cf65)
- renderUnit is not sheet in prev way (#4492) (b40bc0d)
- sheet: cell precision error (#4476) (99b2600)
- sheet: fix binding type not set & add readme. (#4515) (c55f285)
- sheet: fix doc error (#4451) (d5cc9a7)
- sheet: fix facade throw error (#4466) (e53eb2c)
- sheet: remove custom paste (#4503) (ecc8256)
- sheets-formula-ui: highlight doc (#4516) (83a781e)
- sheets-formula-ui: wrong curosr index caused by move-range (#4517) (6cd0583)
- sheets-ui: modify selection when need to add one (#4513) (46e9e1c)
- sheets: data validation validator issues (#4477) (29b6f9a)
- sheets: set value error on formula cell (#4527) (a6a18e5)
- sheet: support bind delete & date type source (#4487) (4aff7f7)
- sheet: support source bind ignore header (#4524) (f38f29e)
- ui: menu hidden error (#4519) (26ef5e9)
- ui: menu hidden error (#4520) (930e15f)
Features
🎉 Release v0.5.4
🎊 [email protected]
🚧 Important Note
This project is still in heavy development, and major API changes are expected. Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
🚀 Getting Started
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!
📊 Univer Sheets
🎉 Highlights
In this release, we are excited to introduce a new set of features and improvements to enhance your Univer experience. Here are the highlights:
- New color picker with custom color support #4437
- New feature: When pasting, a selective paste context menu will be triggered. #4393
- Added
FWorkbook.addEvent
andFWorksheet.addEvent
with related events #4456
univerAPI.getActiveWorkbook().addEvent('CellClicked', (p)=> console.log(p));
univerAPI.getActiveWorkbook().addEvent('CellHover', (p)=> console.log(p));
- Formula registration in Facade API now supports lambda functions #4298
- Added Zen mode editor-related Facade APIs #4423
- Added comment-related events and Facade APIs #4423
- Added image-related events and Facade APIs #4429
- Added clipboard events #4420
- Added
FUniver.registerUIPart
#4452
univerAPI.registerUIPart(BuiltInUIPart.CUSTOM_HEADER, () => React.createElement('h1', null, 'Custom Header'));
- Added string search Facade API #4430
const textFinder = await univerAPI.createTextFinderAsync('hello');
const ranges = textFinder.findAll();
ranges.forEach((range) => {
console.log(range.getA1Notation());
});
🐞 Bug Fixes
🔄 API Updates
The following APIs will be gradually replaced in future versions. Please migrate at your convenience:
- Workbook Related
// Create workbook
- FUniver.createUniverSheet() // Will be deprecated
+ FUniver.createWorkbook() // Recommended
// Get active workbook
- FUniver.getActiveUniverSheet() // Will be deprecated
+ FUniver.getActiveWorkbook() // Recommended
- Conditional Formatting
FWorksheet {
- createConditionalFormattingRule() // Will be deprecated
+ newConditionalFormattingRule() // Recommended
}
- Original hyperlink Facade APIs will have new alternatives in future versions
💔 Breaking Changes
- FFormula import path change:
- import type { FFormula } from '@univerjs/engine-formula';
+ import type { FFormula } from '@univerjs/engine-formula/facade';
- Image operations upgraded to async APIs:
FOverGridImage {
- setPosition(row: number, column: number): boolean;
- setPosition(row: number, column: number, rowOffset?: number, columnOffset?: number): boolean;
- setSize(width: number, height: number): boolean;
+ setPositionAsync(row: number, column: number): Promise<boolean>;
+ setPositionAsync(row: number, column: number, rowOffset?: number, columnOffset?: number): Promise<boolean>;
+ setSizeAsync(width: number, height: number): Promise<boolean>;
}
FOverGridImageBuilder {
- build(): Promise<ISheetImage>;
+ buildAsync(): Promise<ISheetImage>;
}
📝 Univer Docs
- Fixed known issues
🌐 Univer Server
- Fixed known issues
📦 Univer Presets
-
Updated to the latest version of Univer
-
Adjustment of UMD version variable introduction method
before:
const { createUniver, LocaleType, merge, defaultTheme } = UniverPresets;
after:
const { createUniver } = UniverPresets;
const { LocaleType, merge } = UniverCore;
const { defaultTheme } = UniverDesign;
📢 0.6.0 Preview
Important
The development of version 0.6.0 is currently underway. Starting with this release, Univer will support integration with projects using React@19 . However, this update may introduce breaking changes for users relying on React@16 or Univer UMD builds.
If you have any questions or concerns, please feel free to share your suggestions and feedback via GitHub Issues.
📢 Univer Go
Univer Go 0.0.7 has been released, integrating AI, logging, and the latest Univer SDK features. You don't need to configure complex development environments - just code and share your collaborative spreadsheet applications. Try it now! Univer Go
📢 Join the Conversation
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
📝 Changelog
Full changelog (2025-01-13)
Bug Fixes
- better facade comment (#4402) (59a1774)
- design: ensure colorpicker trigger onChanged callback on mouseup event (#4443) (32f1d30)
- design: ensure colorpicker triggers value change after color selection (#4441) (c4d8a1b)
- design: improve styling of Tooltip (#4463) (fcf5bbf)
- facade: insert empty text error (#4465) (88a0c86)
- font interceptor (#4453) (48080f6)
- formula: clear ast cache (#4439) (c504fcb)
- formula: fix formula facade import (#4438) (b1e4ae8)
- formula: node maker handle blank (#4347) (2fbe824)
- paste border should cover origin border (#4321) (7cdd2e6)
- pointer event (#4456) (58d8551)
- ref selection clear (#4387) (c2d126e)
- sheet: sheet name quote (#4198) (f42c01a)
- sidebar visible shoule be false when close (#4343) (c8f2171)
- ui: improve the style of Ribbon (#4448) (4be0fb9)
Features
- add find replace facade api (#4430) (e34c664)
- add paste options (#4393) (d758b21)
- facade: add comment & rich-text & data-validation & edit API (#4423) (cff224f)
- facade: add formula facade (#4348) (de097d8)
- facade: add lexer-tree-builder (#4444) (a36c4f3)
- facade: add ui facade (#4452) (6b723c9)
- facade: univer-sheet change to workbook (#4460) (c4e9c3a)
- formula: support lambda in function register (#4298) (a1b7a16)
- image: add event and enum ([#4429](https://github.com/dream-num/univer...
🎉 Release v0.5.3
🎊 [email protected]
🚧 Important Note
This project is still in heavy development, and major API changes are expected. Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
🚀 Getting Started
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!
📊 Introducing Univer Go Beta!
Important
Univer Go Beta is now available!
We are excited to announce the release of Univer Go, a new desktop application that enables you to build your own spreadsheet and seamlessly integrate with AI agents, databases, and applications.
✨ Fun Built-in Templates
- AI Spreadsheet Translator: Utilize the Univer API in combination with AI to achieve instant multilingual translation of spreadsheet content
- Work Calendar: Generate a work calendar with one click, demonstrating how to use the Univer API to load snapshot data, customize formulas, bind cell events, and utilize the permissions module
- Gantt Chart: Insert any number of Gantt charts into a spreadsheet with a single click, showcasing how to use the Univer API to add formulas, adjust cell styles, merge cells, set conditional formatting, and add data validation
- High-performance Pivot Tables: Quickly create pivot tables and discover how to use the pivot table API in Univer Go to enhance data analysis efficiency
- Tic Tac Toe: Share a link to play Tic-Tac-Toe with friends, learn how to bind Canvas events and implement real-time multiplayer interactions
More templates are waiting for you to explore. Feel free to share your templates with us!
Beta version is now available for both Windows. We welcome community members to test it out and share their feedback to help us improve the platform!
📊 Univer Sheets
🎉 Highlights
In this release, we are excited to introduce a new set of features and improvements to enhance your Univer experience. Here are the highlights:
- Optimized Facade API chaining, enabling more fluent API calls. This update may require adjustments to existing code, please refer to the Breaking Changes section #4329 #4403 #4412
import '@univerjs/sheets/facade'
univerAPI.getActiveWorkbook().insertSheet()
// set basic properties
.setName('Sales Report 2024')
// set freeze pane
.setFrozenRows(2)
.setFrozenColumns(1)
// set column width
.setColumnWidths(0, 1, 180) // product name column
.setColumnWidths(1, 1, 120) // price column
.setColumnWidths(2, 1, 100) // quantity column
.setColumnWidths(3, 1, 120) // total price column
.setColumnWidths(4, 1, 150) // note column
// set row height
.setRowHeight(0, 35) // main header
.setRowHeight(1, 30) // sub header
// set values
.getRange("a1:e1")
.setValues([
["product name", "price", "quantity", "total price", "note"],
])
- Added range theme feature with 31 built-in themes, Documentation #4369
import '@univerjs/sheets/facade'
univerAPI.getActiveWorkbook().getActiveSheet().getRange("a1:c5").useThemeStyle('default')
univerAPI.getActiveWorkbook().getActiveSheet().getRange("a1:c5").useThemeStyle(null)
- Added Facade API
FRange.splitTextToColumns
for splitting text into columns
import '@univerjs/sheets/facade'
univerAPI.getActiveWorkbook().getActiveSheet().getRange("a1").setValue("1;2;3").splitTextToColumns()
- Added Facade API
FFormula.registerFunction
andFFormula.registerAsyncFunction
for creating custom functions #4399
import '@univerjs/sheets/facade'
import '@univerjs/sheets/sheets-formula'
univerAPI.getFormula().registerFunction('HELLO', (name) => `Hello, ${name}!`, 'A simple greeting function');
// Use the function in a cell
univerAPI.getActiveWorkbook().getActiveSheet().getRange('A1').setValue('World');
univerAPI.getActiveWorkbook().getActiveSheet().getRange('A2').setValue({ f: '=HELLO(A1)' });
// A2 will display: "Hello, World!"
🐞 Bug Fixes
- Fixed mouse scrollbar operation issues #4396
- Fixed non-responsive dropdown menu clicks in the More menu #4416
- Fixed known issues
💔 Breaking Changes
Tools.deepMerge
is deprecated, please usemerge
instead
Before:
import { Tools } from '@univerjs/core'
Tools.deepMerge(obj1, obj2)
After:
import { merge } from '@univerjs/core'
merge(obj1, obj2)
- Changed return type of chained Facade API calls from
Promise<boolean>
toFUniver
orFWorkbook
orFWorksheet
orFRange
orFDataValidation
orFFilter
#4329 #4403 #4412
Before:
await univerAPI.getActiveWorkbook().getActiveSheet().getRange('A1:A5').setValue('123');
await univerAPI.getActiveWorkbook().getActiveSheet().getRange('A1:A5').merge()
After:
univerAPI.getActiveWorkbook().getActiveSheet().getRange('A1:A5').setValue('123').merge();
FUniver{
...
-setCrosshairHighlightColor(color: string): void;
+setCrosshairHighlightColor(color: string): FUniver;
-setCrosshairHighlightEnabled(enabled: boolean): void;
+setCrosshairHighlightEnabled(enabled: boolean): FUniver;
-showMessage(options: IMessageProps): void;
+showMessage(options: IMessageProps): FUniver;
-addWatermark(type: IWatermarkTypeEnum.Text, config: ITextWatermarkConfig): void;
+addWatermark(type: IWatermarkTypeEnum.Text, config: ITextWatermarkConfig): FUniver;
-addWatermark(type: IWatermarkTypeEnum.Image, config: IImageWatermarkConfig): void;
+addWatermark(type: IWatermarkTypeEnum.Image, config: IImageWatermarkConfig): FUniver;
-deleteWatermark(): void;
+deleteWatermark(): FUniver;
...
}
FWorkbook{
...
-deleteActiveSheet(): Promise<boolean>;
+deleteActiveSheet(): FWorkbook;
-deleteSheet(sheet: FWorksheet): Promise<boolean>;
+deleteSheet(sheet: FWorksheet): FWorkbook;
-duplicateActiveSheet(): Promise<boolean>;
+duplicateActiveSheet(): FWorkbook;
-duplicateSheet(sheet: FWorksheet): Promise<boolean>;
+duplicateSheet(sheet: FWorksheet): FWorkbook;
-moveActiveSheet(index: number): Promise<boolean>;
+moveActiveSheet(index: number): FWorkbook;
-moveSheet(sheet: FWorksheet, index: number): Promise<boolean>;
+moveSheet(sheet: FWorksheet, index: number): FWorkbook;
-redo(): Promise<boolean>;
+redo(): FWorkbook;
-undo(): Promise<boolean>;
+undo(): FWorkbook;
...
}
FWorksheet {
...
-cancelFreeze(): boolean;
+cancelFreeze(): FWorksheet;
-clear(options?: IFacadeClearOptions): Promise<boolean>;
+clear(options?: IFacadeClearOptions): FWorksheet;
-clearContents(): Promise<boolean>;
+clearContents(): FWorksheet;
-clearFormats(): Promise<boolean>;
+clearFormats(): FWorksheet;
-deleteColumn(columnPosition: number): Promise<FWorksheet>;
+deleteColumn(columnPosition: number): FWorksheet;
-deleteColumns(columnPosition: number, howMany: number): Promise<FWorksheet>;
+deleteColumns(columnPosition: number, howMany: number): FWorksheet;
-deleteRow(rowPosition: number): Promise<FWorksheet>;
+deleteRow(rowPosition: number): FWorksheet;
-deleteRows(rowPosition: number, howMany: number): Promise<FWorksheet>;
+deleteRows(rowPosition: number, howMany: number): FWorksheet;
-hideColumn(column: FRange): Promise<FWorksheet>;
+hideColumn(column: FRange): FWorksheet;
-hideColumns(columnIndex: number, numColumns?: number): Promise<FWorksheet>;
+hideColumns(columnIndex: number, numColumns?: number): FWorksheet;
-hideRow(row: FRange): Promise<FWorksheet>;
+hideRow(row: FRange): FWorksheet;
-hideRows(rowIndex: number, numRows?: number): Promise<FWorksheet>;
+hideRows(rowIndex: number, numRows?: number): FWorksheet;
-hideSheet(): void;
+hideSheet(): FWorksheet;
-insertColumnAfter(afterPosition: number): Promise<FWorksheet>;
+insertColumnAfter(afterPosition: number): FWorksheet;
-insertColumnBefore(beforePosition: number): Promise<FWorksheet>;
+insertColumnBefore(beforePosition: number): FWorksheet;
-insertColumns(columnIndex: number, numColumns?: number): Promise<FWorksheet>;
+insertColumns(columnIndex: number, numColumns?: number): FWorksheet;
-insertColumnsAfter(afterPosition: number, howMany: number): Promise<FWorksheet>;
+insertColumnsAfter(afterPosition: number, howMany: number): FWorksheet;
-insertColumnsBefore(beforePosition: number, howMany: number): Promise<FWorksheet>;
+insertColumnsBefore(beforePosition: number, howMany: number): FWorksheet;
-insertRowAfter(afterPosition: number): Promise<FWorksheet>;
+insertRowAfter(afterPosition: number): FWorksheet;
-insertRowBefore(beforePosition: number): Promise<FWorksheet>;
+insertRowBefore(beforePosition: number): FWorksheet;
-insertRows(rowIndex: number, numRows?: number): Promise<FWorksheet>;
+insertRows(rowIndex: number, numRows?: number): FWorksheet;
-insertRowsAfter(afterPosition: number, howMany: number): Promise<FWorksheet>;
+insertRowsAfter(afterPosition: number, howMany: number): FWorksheet;
-insertRowsBefore(beforePosition: number, howMany: number): Promise<FWorksheet>;
+insertRowsBefore(beforePosition: number, howMany: number): FWorksheet;
-moveColumns(columnSpec: FRange, destinationIndex: number): Promise<FWorksheet>;
+moveColumns(columnSpec: FRange, destinationIndex: number): FWorksheet;
-moveRows(rowSpec: FRange, destinationIndex: number): Promise<FWorksheet>;
+moveRows(rowSpec: FRange, destinationIndex: number): FWorksheet;
-setColumnCus...
🎉 Release v0.5.2
🎊 [email protected]
🚧 Important Note
This project is still in heavy development, and major API changes are expected. Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
🚀 Getting Started
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!
📊 Introducing Univer Go Beta!
Important
Univer Go Beta is now available!
We are excited to announce the release of Univer Go, a new desktop application that enables you to build your own spreadsheet and seamlessly integrate with AI agents, databases, and applications.
✨ Fun Built-in Templates
- AI Spreadsheet Translator: Utilize the Univer API in combination with AI to achieve instant multilingual translation of spreadsheet content
- Work Calendar: Generate a work calendar with one click, demonstrating how to use the Univer API to load snapshot data, customize formulas, bind cell events, and utilize the permissions module
- Gantt Chart: Insert any number of Gantt charts into a spreadsheet with a single click, showcasing how to use the Univer API to add formulas, adjust cell styles, merge cells, set conditional formatting, and add data validation
- High-performance Pivot Tables: Quickly create pivot tables and discover how to use the pivot table API in Univer Go to enhance data analysis efficiency
- Tic Tac Toe: Share a link to play Tic-Tac-Toe with friends, learn how to bind Canvas events and implement real-time multiplayer interactions
More templates are waiting for you to explore. Feel free to share your templates with us!
Beta version is now available for both Windows. We welcome community members to test it out and share their feedback to help us improve the platform!
📊 Univer Sheets
🎉 Highlights
In this release, we are excited to introduce a new set of features and improvements to enhance your Univer experience. Here are the highlights:
-
Added
Univer.onDispose
for cleanup work #4218 -
Refactored message box and optimized message box styles #4352
-
Added numerous Facade APIs covering: worksheets, selection, UI, name manager, scrollbar, shortcuts, sorting, network, images, conditional formatting, and more
-
Added Facade API for getting multiple selections #4264
import '@univerjs/sheets/facade';
// get active range list
const activeRangeList = univerAPI.getActiveWorkbook().getActiveRangeList();
import '@univerjs/sheets-ui/facade';
// hide selection
univerAPI.getActiveWorkbook().transparentSelection()
// show selection
univerAPI.getActiveWorkbook().showSelection()
- Added Image Operations Facade API #4322
import '@univerjs/sheets-drawing-ui/facade';
const activeSpreadsheet = univerAPI.getActiveWorkbook();
const activeSheet = activeSpreadsheet.getActiveSheet();
// insert image on A1
activeSheet.insertImage('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', 0, 0);
- Added Network Operations Facade API #4294
import '@univerjs/network/facade';
univerAPI.getNetwork().get("/api.json")
.then(res => console.log('data', res.body))
.catch(e => console.log('error', e))
univerAPI.getNetwork().post("/api.json", { headers: {}, body: {} })
- Added Conditional Formatting Facade API #4300
import '@univerjs/sheets-conditional-format/facade';
const workbook = univerAPI.getActiveWorkbook();
const worksheet = workbook.getActiveSheet();
// set style when cell not empty on A1:A100
const rule = worksheet.createConditionalFormattingRule()
.whenCellNotEmpty()
.setRanges([{ startRow: 0, endRow: 100, startColumn: 0, endColumn: 100 }])
.setItalic(true)
.setBackground('red')
.setFontColor('green')
.build();
worksheet.addConditionalFormattingRule(rule);
- Added Sorting Operations Facade API #4312
import '@univerjs/sheets-sort/facade';
const workbook = univerAPI.getActiveWorkbook();
const worksheet = workbook.getActiveSheet();
const range = worksheet.getRange("A1:B3");
// sort A1:B3 by column B in ascending order
range.sort({column: range.getColumn() + 1 ,ascending:true})
import '@univerjs/ui/facade';
// create a custom menu on ribbon
univerAPI.createMenu({
id: 'custom-menu-id',
title: 'Custom Text',
tooltip:'This tip show on hover.',
action: () => {
console.log('Custom Text');
},
}).appendTo('ribbon.start.others');
// show message
univerAPI.showMessage({ content:"Hello, Univer!" })
- Added Name Manager Facade API #4282
import '@univerjs/sheets/facade';
const workbook = univerAPI.getActiveWorkbook();
workbook.insertDefinedName('MyDefinedName', 'Sheet1!A1');
const definedNames = workbook.getDefinedNames();
- Added Scrollbar Facade API #4290
import '@univerjs/sheets-ui/facade';
// get scroll state
univerAPI.getActiveWorkbook().getActiveSheet().getScrollState();
// scroll Event
univerAPI.getActiveWorkbook().getActiveSheet().onScroll((state) => {
console.log('scroll', state);
});
- Added Range to A1 Notation Facade API #4325
import '@univerjs/sheets/facade';
const range = univerAPI.getActiveWorkbook().getActiveRange().getA1Notation();
// convert range to A1:B3
range.getA1Notation();
- More Facade APIs are being added, please refer to the documentation and API reference for more details
🐞 Bug Fixes
- Fixed border display issues when merging cells #4276
- Fixed memory leak issues #4212 #4213
- Fixed color picker reset functionality #4234
- Fixed hyperlink issues #4223 #4237
- Fixed known formula engine issues #4224 #4245
- Fixed known clipboard issues #4268 #4253
- Fixed known formula auto-fill issues #227
- Fixed
XLOOKUP
formula function #4277 - Fixed
SUMIFS
formula function #4216 - Fixed
PRODUCT
formula function #4273 - Fixed performance issues with data validation for large datasets #4376
💔 Breaking Changes
- Merge Facade API will now force merge without prompting #4246
@univerjs-pro/collaboration-client
has been split into three packages:@univerjs-pro/collaboration-client
@univerjs-pro/collaboration-client-node
@univerjs-pro/collaboration-client-ui
-pnpm i @univerjs-pro/collaboration @univerjs-pro/collaboration-client
+pnpm i @univerjs-pro/collaboration @univerjs-pro/collaboration-client @univerjs-pro/collaboration-client-ui
import { UniverCollaborationClientPlugin } from '@univerjs-pro/collaboration-client';
+import { UniverCollaborationClientUIPlugin } from '@univerjs-pro/collaboration-client-ui';
-import '@univerjs-pro/collaboration-client/lib/index.css';
+import '@univerjs-pro/collaboration-client-ui/lib/index.css';
univer.registerPlugin(UniverCollaborationClientPlugin, {
...
});
+univer.registerPlugin(UniverCollaborationClientUIPlugin);
- Fixed incorrect export names
-import { CollabrationImageIoService } from '@univerjs-pro/collaboration-client'
+import { CollaborationImageIoService } from '@univerjs-pro/collaboration-client'
- Print Facade API adjustments, removed unnecessary return values
interface FWorkSheet {
...
- closePrintDialog(): boolean;
- openPrintDialog(): boolean;
- print(): boolean;
+ closePrintDialog(): void;
+ openPrintDialog(): void;
+ print(): void;
...
}
📢 0.6.0 Preview
Important
The development of version 0.6.0 is currently underway. Starting with this release, Univer will support integration with projects using React@19 . However, this update may introduce breaking changes for users relying on React@16 or Univer UMD builds.
If you have any questions or concerns, please feel free to share your suggestions and feedback via GitHub Issues.
📝 Univer Docs
Fixed known rendering issues #4219
🌐 Univer Server
Fixed known issues and improved service stability
📦 Univer Presets
🎉 Highlights
- All new features and Facade APIs from 0.5.2 are now integrated into Presets by default, just import presets to use them
🐞 Bug Fixes
- Fixed known issues in Node.js environment
💔 Breaking Changes
- Dependencies imported through
@univerjs/presets
should now be imported through specific preset entries:
-import { HTTPService } from '@univerjs/presets'
+import { HTTPService } from '@univerjs/presets/preset-sheets-advanced'
@univerjs-pro/thread-comment-datasource
has been removed from presets, requires separate registration if needed.
🎢 Special Thanks
Special thanks to the following contributors who have made this release possible:
📢 Join the Conversation
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
📝 Changelog
Full changelog (2024-12-28)
Bug Fixes
- better disable selection ---> transparent sele...
🎉 Release v0.5.1
🎊 [email protected]
🚧 Important Note
This project is still in heavy development, and major API changes are expected. Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
🚀 Getting Started
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!
📊 Univer Sheets
🎉 Highlights
In this release, we are excited to introduce a new set of features and improvements to enhance your Univer experience. Here are the highlights:
- Support for cell images #4036
- Support for plugin exports through
@univerjs/presets
- Added French
fr-FR
locale support, thanks to community contribution #3564 - Conditional Formatting Memory Optimization #4164
🐞 Bug Fixes
- Fixed filter compatibility issues with lower versions of React #4189
- Fixed cell error prompt not disappearing properly; Fixed worksheet name errors when copying formulas #4172
- Optimized arrow key operations for formula range selector #4135
- Fixed
iferror
formula function #4163 - Formula engine performance optimization #4159
- Fixed formula range selector interaction #4156
💔 Breaking Changes
-
The
UniverSheetsDrawingUIPlugin
in@univerjs/sheets-drawing-ui
depends on theUniverDocsDrawingPlugin
from@univerjs/docs-drawing
. To ensure proper functionality:
Installation
pnpm install @univerjs/docs-drawing
Registration
+univer.registerPlugin(UniverDocsDrawingPlugin)
univer.registerPlugin(UniverSheetsDrawingUIPlugin)
📝 Univer Docs
🌐 Univer Server
- Collaboration service optimization
🎢 Special Thanks
Special thanks to the following contributors who have made this release possible:
📢 Join the Conversation
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
📝 Changelog
Full changelog (2024-11-30)
Bug Fixes
- auto fill should delete dv rules (#4075) (b9439c5)
- clipboard deps (#4115) (57c595e)
- conditional-formatting: fix type (#4181) (9db1edf)
- conditional-formatting: the style that involves conditional formatting does not fall (#4195) (d7f5f72)
- cursor blink lags when pointer down at text range (#4180) (de4d70b)
- docs-ui: cursor valished at paragraph beginning (#4147) (ae027eb)
- docs-ui: double paste issue (#4168) (f0e8c92)
- dup list glyph type name (#4169) (6b68364)
- fix client may miss the INITIALIZE event (#4158) (f0234bb)
- formula: fix iferror (#4163) (1a9f83d)
- formula: fix networkdays.intl (#4152) (d1d4bbe)
- formula: update formula data model (#4159) (243acdb)
- optimization of create empty doc (#4149) (c88e709)
- ref selection change by arrow key (#4135) (444c065)
- selection should stop response after a popup shown (#4156) (a4b38af)
- sheet: parseValue handle number (#4049) (59b95fa)
- sheets-filter-ui: fix the react compatibility issue with sheets filter (#4189) (61e8ebf)
- sheet: sheet name normalize string (#4172) (d9b1149)
- ui: progress bar animation (#4136) (f578296)
Features
🎉 Release v0.5.0
🎊 [email protected]
🚧 Important Note
This project is still in heavy development, and major API changes are expected. Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
🚀 Getting Started
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!
📊 Univer Sheets
🎉 Highlights
-
Added
@univerjs/presets
, providing a new simplified way to import Univer. Recommended for beginners to quickly get started, with smooth transition to advanced import methods as needs grow. Presets import has become the default method in official documentation. Learn more -
Added more flexible Facade API import method, with Facade API included by default when using presets. Learn more #3730
-
Added commercial formula engine plugin
@univerjs-pro/engine-formula
with higher performance compared to open source version, supporting 2M+ formulas per sheet, especially suitable for commercial scenarios with large data calculations. Learn more -
Added Node.js environment support for Univer. Learn more #3730
-
Added chart plugins
@univerjs-pro/chart
and@univerjs-pro/sheets-chart-ui
. Learn more -
Formula function count has now reached 500+ 🎉
-
Enhanced feature: Filter plugin
@univerjs/sheets-filter-ui
now supports filtering by year, month, and date -
Enhanced feature: Added print Facade API
-
Website and documentation updates:
- Updated website for better user understanding and experience
- Official documentation migrated to standalone site docs.univer.ai
- TypeDoc content migrated to standalone site reference.univer.ai
🐞 Bug Fixes
- Fixed
clone.weekday
error #4078 - Fixed highlight display issue when hiding row/column headers #3919
- Fixed drawing plugin i18n issues #4046
- Fixed data anomaly without numfmt plugin #3959
💔 Breaking Changes
@univerjs/facade
and@univerjs-pro/facade
are deprecated. Please use@univerjs/preset
or import from@univerjs/*/facade
as needed.@univerjs/facade
will be removed in version 0.6.0. Learn more
-import { FUniver } from "@univerjs/facade";
-import { FUniver } from "@univerjs-pro/facade";
+import { FUniver } from "@univerjs/core";
+import '@univerjs/sheets/facade';
+import '@univerjs/ui/facade';
+import '@univerjs/docs-ui/facade';
+import '@univerjs/sheets-ui/facade';
@univerjs/umd
is deprecated, replaced by@univerjs/preset
for CDN imports. Learn more- UMD artifact global variable prefix for
@univerjs-pro/*
packages changed fromUniver
toUniverPro
- I18n artifacts updated: deprecated
lib/locale/[lang].json
format, please uselib/es/locale/[lang].js
format @univerjs/sheets-numfmt
split into:@univerjs/sheets-numfmt
and@univerjs/sheets-numfmt-ui
@univerjs/sheets-thread-comment-base
renamed to@univerjs/sheets-thread-comment
, and@univerjs/sheets-thread-comment
renamed to@univerjs/sheets-thread-comment-ui
@univerjs/esbuild-plugin
,@univerjs/vite-plugin
, and@univerjs/webpack-plugin
require latest version upgrade for 0.5.0 support
📝 Univer Docs
- Multiple feature optimizations
💔 Breaking Changes
- Split tags
\x1e
&\x1f
will be removed frombody.datastream
#3928
🌐 Univer Server
- Improved import/export performance
- Improved deployment and shutdown/upgrade documentation
💔 Breaking Changes
- Docker-compose workspace naming updated. For upgrading from old version, first enter old workspace directory and run
docker compose down
, then enter new workspace directory and rundocker compose up
🎢 Special Thanks
Special thanks to the following contributors who have made this release possible:
📢 Join the Conversation
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
📝 Changelog
Full changelog (2024-11-23)
Bug Fixes
- bugs in cut-paste undo scenario (#4095) (afc72cf)
- cal page size in modern mode (#4128) (a58350b)
- doc text selection begin from list marker (#4132) (798e1fd)
- doc: bad image path when parsing clipboard HTML (#4119) (adfaf14)
- doc: failed to process image upload (#4120) (2547183)
- docs-ui: menu align when select table cells (#4127) (e1d7713)
- drawing: set drawing bounding in left/top to A1 cell (#4096) (e695309)
- formula: init trigger calculation controller on rendered (#4118) (9e7b9fb)
- formula: update formula string in other sheet (#4107) (3cf0e3b)
- selection before table (#4134) (744a203)
- set pointer caputure when pointer out (#4099) (e194a1e)
- sheet: cell related facade api (#4032) (545dc82)
- sheet: maximum call stack (#4088) (d6d2e3f)
- sheets-hyper-link-ui: link ref -range (#4131) (924ad5e)
- sheets-ui: gridlines permission (#4091) (9630498)
- core: add missing localizedFormat plugin support for dayjs (#4079) (629db60)
- delete apply (#4062) (820653c)
- doc-mention: doc mention error (#4077) (d3085e2)
- docs-ui: cache menu style (#3939) (3be0982)
- docs-ui: load lang error (#4060) (278f728)
- docs: inline format in table (#4089) (bf33540)
- docs: invert action issue (#4083) (3f78902)
- drawing: float dom event error (#4035) (ee8b93d)
- formula: fix formula rows and columns limit (#4052) (9a78db0)
- formula: fix formula update operation (#4026) ([54599ce](54599ce86c...
🎉 Release v0.4.2
🎊 [email protected]
🚧 Important Note
This project is still in heavy development, and major API changes are expected. Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
🚀 Getting Started
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!
📊 Univer Sheets
🎉 Highlights
In this release, we are excited to introduce a new set of features and improvements to enhance your Univer experience. Here are the highlights:
- Support auto column width #3798
- Added
@univerjs/watermark
plugin, Learn more #3751
- register plugin
pnpm add @univerjs/watermark
- import plugin
import '@univerjs/watermark/lib/index.css'
import { UniverWatermarkPlugin } from '@univerjs/watermark';
- add locale
import { LocaleType, Tools } from '@univerjs/core'
import { defaultTheme } from "@univerjs/design";
+ import UniverWatermarkEnUS from '@univerjs/watermark/locale/en-US'
const univer = new Univer({
theme: defaultTheme,
locale: LocaleType.EN_US,
locales: {
[LocaleType.EN_US]: Tools.deepMerge(
+ UniverWatermarkEnUS,
),
},
});
- register plugin
univer.registerPlugin(UniverWatermarkPlugin)
- Added new Facade API for setting default
custom
properties for rows and columns:FWorksheet
addssetColumnCustom
,setRowCustom
methods #3816 - Added new Facade API for setting worksheet default styles:
FWorksheet
addssetDefaultStyle
,setColumnDefaultStyle
,setRowDefaultStyle
methods, Learn more #3816 - Added new Facade API to control gridlines visibility:
FWorksheet
addssetHiddenGridlines
method #3805 - Added
@univerjs/network
plugin, support request behavior override when registering plugins #3870 - Added 20+ text formula functions and 2 math formula functions #3546
- Added 10+ statistical formula functions #3749
- Formula function count has reached 408, aiming to exceed 500
🐞 Bug Fixes
- Fixed cell string type behavior #3872
- Fixed
SUMIF
formula calculation with different range dimensions #3853 #3807 - Added scrolling support for sheet switching menu #3821
- Fixed 'local-fonts' console error #3811 #3841
- Fixed sheet editor focus issues #3809
- Fixed formula progress bar loading issue #3790
📝 Univer Docs
🌐 Univer Server
- Enhanced collaboration permissions
- Improved installation script experience
📢 Join the Conversation
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
📝 Changelog
Full changelog (2024-10-29)
Bug Fixes
- add comments for set frozen cmd params (#3743) (ebcf3e0)
- cell: fix cell string type (#3872) (bc65876)
- demo: types (#3794) (0d313f2)
- docs-link: error display url link when add link (#3822) (f6cd524)
- docs-thread-comment-ui: doc comment ot (#3832) (1fd499a)
- docs: close header and footer when switch doc mode (#3869) (888c15c)
- docs: line break in collaboration (#3863) (e95449e)
- docs: merge two paragraphs (#3871) (cf12b98)
- docs: the apply result should be consistent (#3806) (d0054f3)
- docs: transform in bullet list (#3830) (7451d2d)
- docs: undefined error when call permission query (#3841) (d642327)
- doc: transform with REPLACE type (#3827) (42e26e1)
- drawing: fix inner dom position (#3864) (c37f24c)
- drawing: fix remove drawing elements the control when not remove… (#3873) (448d32c)
- fix type-check (#3796) (cc822fa)
- formula: dependency for vlookup (#3817) (3a77cb2)
- formula: fix CELL_INVERTED_INDEX_CACHE range set (#3807) (1092fcb)
- formula: fix lookup related bugs (#3847) (ff9cf49)
- formula: fix progress bar not loaded (#3790) (065dadc)
- formula: fix sumif formula range and sumRange different dimensions (#3853) (faf7936)
- getScale is not correct after ctx.rotate (#3792) (b0c5f13)
- sheets-data-validation: can't copy checkbox with right checked status (#3818) (6da0f1e)
- sheets-drawing-ui: float dom scroll not update on drag range (#3840) (575a604)
- sheets-hyper-link-ui: sheet link menu display wrong in cell editing (#3825) (dbcdcba)
- sheets-hyper-link: link ref range behavior error (#3862) (3126112)
- sheets-ui: can't quit editor after enter '=' (#3861) (5343f2c)
- sheets-ui: lag when editing (#3837) (251186e)
- sheets-ui: should disable sheet menus on cell editing (#3809) (e758013)
- thread-comment: comment datasource (#3787) (8978364)
- thread-comment: thread-comment build types (#3802) (417fdee)
- trigger selectionMoveEnd$ when using keyboard to change selections. (#3731) (7b67be2)
- ui: improve layout and overflow handling in sheet bar menu (#3823) ([acb4a45](acb4a...
🔥 Release v0.4.1
🎉 Release v0.4.0
🎊 [email protected]
🚧 Important Note
This project is still in heavy development, and major API changes are expected. Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
🚀 Getting Started
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!
📊 Univer Sheets
🎉 Highlights
In this release, we are excited to introduce a new set of features and improvements to enhance your Univer experience. Here are the highlights:
- Added
formulaBar
configuration option to control the display of the formula bar #3632 - Added
onCellDataChange
andonBeforeCellDataChange
methods to the Facade APIFWorksheet
for monitoring cell data changes #3626 - Added Persian language
fa_IR
support #3558 - Added
REGEXEXTRACT
,REGEXMATCH
, andREGEXREPLACE
formula functions #3633 - The number of formula functions has now reached 372, with a goal of exceeding 500
🐞 Bug Fixes
- Fixed merged cell rendering issue #3671
- Fixed editor cursor position offset #3668
- Fixed custom context menu items not displaying #3688
- Fixed column header rendering issue after reinitializing following
disposeUnit
#3598 - Fixed
SetStyleCommand
only affecting the current active sheet #3586 - Fixed
SetRangeValuesCommand
changing user focus #3697 - Fixed nested
IF
formula calculation error #3774 - Fixed navigation bar flickering #3745
💔 Breaking Changes
- Plugin developers should note that the following changes have been made:
- The
OnLifecycle
decorator has been removed. Please complete the corresponding instance initialization logic in the plugin's lifecycle methods instead #3672
- The
example:
///plugin/controllers/custom-menu.controller.ts
-@OnLifecycle(LifecycleStages.Ready, CustomMenuController)
export class CustomMenuController extends Disposable {
...
}
...
//plugin/plugin.ts
export class UniverSheetsCustomMenuPlugin extends Plugin {
...
+ onReady(): void {
+ this._injector.get(CustomMenuController);
+ }
...
}
- The
injector
parameter in plugin lifecycle methods has been removed. Please use the class property_injector
directly #3672 - Plugin refactoring #3527
@univerjs/sheets-formula
has been split into two plugins:@univerjs/sheets-formula
and@univerjs/sheets-formula-ui
. Please import@univerjs/sheets-formula-ui
into your frontend code as well.
- install:
-pnpm add @univerjs/sheets-formula
+pnpm add @univerjs/sheets-formula @univerjs/sheets-formula-ui
- import:
-import '@univerjs/sheets-formula/lib/index.css'
+import '@univerjs/sheets-formula-ui/lib/index.css'
-import SheetsFormulaEnUS from '@univerjs/sheets-formula/locale/en-US';
+import SheetsFormulaUiEnUS from '@univerjs/sheets-formula-ui/locale/en-US';
import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'
+import { UniverSheetsFormulaUIPlugin } from '@univerjs/sheets-formula-ui'
- register:
univer.registerPlugin(UniverSheetsFormulaPlugin)
+univer.registerPlugin(UniverSheetsFormulaUIPlugin)
@univerjs/sheets-data-validation
has been split into two plugins:@univerjs/sheets-data-validation
and@univerjs/sheets-data-validation-ui
. Please import@univerjs/sheets-data-validation-ui
into your frontend code as well. The configuration for@univerjs/sheets-data-validation
should also be moved to@univerjs/sheets-data-validation-ui
.
- install:
-pnpm add @univerjs/data-validation @univerjs/sheets-data-validation
+pnpm add @univerjs/data-validation @univerjs/sheets-data-validation @univerjs/sheets-data-validation-ui
- import:
-import '@univerjs/sheets-data-validation/lib/index.css';
+import '@univerjs/sheets-data-validation-ui/lib/index.css';
-import SheetsDataValidationEnUS from '@univerjs/sheets-data-validation/locale/en-US';
+import SheetsDataValidationUiEnUS from '@univerjs/sheets-data-validation-ui/locale/en-US';
import { UniverDataValidationPlugin } from '@univerjs/data-validation';
import { UniverSheetsDataValidationPlugin } from '@univerjs/sheets-data-validation'
+import { UniverSheetsDataValidationUIPlugin } from '@univerjs/sheets-data-validation-ui'
- register:
univer.registerPlugin(UniverDataValidationPlugin)
univer.registerPlugin(UniverSheetsDataValidationPlugin)
+univer.registerPlugin(UniverSheetsDataValidationUIPlugin)
📝 Univer Docs
🔧 Improvements
- Editor refactoring #3551
🎢 Special Thanks
Special thanks to the following community members who have made outstanding contributions to this release:
📢 Join the Conversation
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
📝 Changelog
Full changelog (2024-10-17)
Bug Fixes
- docs-ui: don't refresh-selection after set list (#3780) (924dee7)
- docs-ui: formula-editor should not render paragraph style (#3783) (b7301af)
- docs: header footer setting not focus (#3698) (2db351b)
- docs: no need to cache font style when has no text run (#3779) (8a48479)
- engine-render: check box render (#3776) (83e0897)
- fix permission rangeSelector & insert menu (#3757) (1f43484)
- font render bounds (#3754) (4ecd764)
- formula: fix some bug (#3774) (4c4efe4)
- sheets-ui: can't save first edit cell (#3781) (d29da2f)
- cell style in collaboration (#3748) (e138b95)
- condition-formatting: date calculation error (#3733) (30da399)
- conditional-formatting: reduce icon map size (#3769) (0f19fc0)
- docs-ui: doc list render error after operation like break-line (#3766) (8c95a53)
- flickering when init page (#3762) (fe3ff31)
- formula: fix ArrayValueObject compare cache bug (#3764) (424bb02)
- formula: fix datedif bug (#3747) (f9f4973)
- refresh selection when collapsed (#3761) (a92a389)
- sheet: fix can not delete when there are exclusive range (#3729) (d6db560)
- sheets-data-validation: data validation validator status render error (#3752) (555e9d5)
- snapshot area (#3715) (5957a04)
- ui: fix missing context menu items (#3758) (421d009)
- ui: ribbon others tab flickering resolved (#3745) (bc8bfb6)
- docs: can not paste content when have both text ra...
🎉 Release v0.3.0
🎊 [email protected]
🚧 Important Note
This project is still in heavy development, and major API changes are expected. Your feedback is crucial! Please submit issues and suggestions to help us shape the future of Univer.
🚀 Getting Started
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!
📊 Univer Sheets
🎉 Highlights
In this release, we are excited to introduce a new set of features and improvements to enhance your Univer experience. Here are the highlights:
- Support hiding the edit button in the conditional formatting options dropdown menu using the
showEditOnDropdown
parameter #3574 - Copy and paste now carry the
custom
field #3487 - Added Facade API for freezing rows and columns #3561
- Added 29 statistical and 19 compatibility formula functions #3463
- The number of formula functions has now reached 369, with a goal of exceeding 500
🐞 Bug Fixes
- Fixed issues with some document exports failing
- Fixed merged cell border style anomalies #3475 #3506
- Fixed rendering timing issues for merged cells #3516
- Fixed
BooleanNumber
enum type error #3571 - Fixed scroll bar position offset when dragging with the mouse #3556
- Fixed display of extra dividers when hiding context menu items #3552
- Fixed data bar style offset #3535
- Removed the need to import lodash in UMD mode #3605
💔 Breaking Changes
- Adjusted the configuration method for collaboration, import, and export plugins. The old usage will be removed in the future, and the configuration will be unified when registering plugins.
Before:
configService.setConfig(AUTHZ_URL_KEY, `${httpProtocol}://${host}/universer-api/authz`)
configService.setConfig(SNAPSHOT_SERVER_URL_KEY, `${httpProtocol}://${host}/universer-api/snapshot`);
configService.setConfig(COLLAB_SUBMIT_CHANGESET_URL_KEY, `${httpProtocol}://${host}/universer-api/comb`);
configService.setConfig(COLLAB_WEB_SOCKET_URL_KEY, `${wsProtocol}://${host}/universer-api/comb/connect`);
configService.setConfig(SEND_CHANGESET_TIMEOUT_KEY, 200);
configService.setConfig(EXCHANGE_UPLOAD_FILE_SERVER_URL_KEY, `${httpProtocol}://${host}/universer-api/stream/file/upload`);
configService.setConfig(EXCHANGE_IMPORT_SERVER_URL_KEY, `${httpProtocol}://${host}/universer-api/exchange/{type}/import`);
configService.setConfig(EXCHANGE_EXPORT_SERVER_URL_KEY, `${httpProtocol}://${host}/universer-api/exchange/{type}/export`);
configService.setConfig(EXCHANGE_GET_TASK_SERVER_URL_KEY, `${httpProtocol}://${host}/universer-api/exchange/task/{taskID}`);
configService.setConfig(EXCHANGE_SIGN_URL_SERVER_URL_KEY, `${httpProtocol}://${host}/universer-api/file/{fileID}/sign-url`);
After:
univer.registerPlugin(UniverCollaborationClientPlugin, {
authzUrl: `${httpProtocol}://${host}/universer-api/authz`,
snapshotServerUrl: `${httpProtocol}://${host}/universer-api/snapshot`,
collabSubmitChangesetUrl: `${httpProtocol}://${host}/universer-api/comb`,
collabWebSocketUrl: `${wsProtocol}://${host}/universer-api/comb/connect`,
sendChangesetTimeout: 200,
});
univer.registerPlugin(UniverExchangeClientPlugin, {
uploadFileServerUrl: `${httpProtocol}://${host}/universer-api/stream/file/upload`,
importServerUrl: `${httpProtocol}://${host}/universer-api/exchange/{type}/import`,
exportServerUrl: `${httpProtocol}://${host}/universer-api/exchange/{type}/export`,
getTaskServerUrl: `${httpProtocol}://${host}/universer-api/exchange/task/{taskID}`,
signUrlServerUrl: `${httpProtocol}://${host}/universer-api/file/{fileID}/sign-url`,
});
- Adjusted the licensing rules for commercial features. Commercial version users need to register their license key as follows when using commercial features:
- Install
pnpm add @univerjs-pro/license
- Register
import { UniverLicensePlugin } from '@univerjs-pro/license';
univer.registerPlugin(UniverLicensePlugin, {
license: 'your-license-txt'
});
- Plugin registration order has been adjusted. If you encounter an error, please check and ensure
UniverDocsUIPlugin
must be registered afterUniverUIPlugin
UniverRenderEnginePlugin
should be registered before most plugins
📝 Univer Docs
🎉 Highlights
In this release, we are excited to introduce a new set of features and improvements to enhance your Univer experience. Here are the highlights:
- Support for rendering more unicode characters #3512
- Improved stability
💔 Breaking Changes
- Plugin developers should note that the editor has been refactored. The
editor
service-related content has been moved from@univerjs/ui
to@univerjs/docs-ui
#3486
Before:
import { IRangeSelectorService, RangeSelector, TextEditor, IEditorService } from '@univerjs/ui';
After:
import { IRangeSelectorService, RangeSelector, TextEditor, IEditorService } from '@univerjs/docs-ui';
🌐 Univer Server
🎉 Highlights
In this release, we are excited to introduce a new set of features and improvements to enhance your Univer experience. Here are the highlights:
- Optimized server-side installation experience
📢 Join the Conversation
We welcome your input and insights as we embark on this exciting journey. Connect with us on:
📝 Changelog
Full changelog (2024-09-28)
Bug Fixes
- bg border return before getCell (#3623) (2e7b201)
- data-validation: remove useless interceptor mutations (#3630) (fd48e15)
- auto focus after select menu item (#3507) (a02e78b)
- auto-fill: merge-cell bugs in auto-fill (#3606) (bf21d58)
- border for merged cell (#3506) (1c4c237)
- cell margin bottom should over 1 (#3595) (65ee6b2)
- conditional-formatting: data bar render error (#3535) (f11c87f)
- copy sheet should copy filter (#3592) (e3620ce)
- design: improve empty options styling and messaging for Select (#3569) (3762706)
- docs-link-ui: link text error (#3620) (1e1522c)
- docs-ui: formula-editor can't scroll & edit link on cell editor (#3530) (6c4b96c)
- docs-ui: paste link on link (#3518) (9fcd45b)
- docs: doc selection refresh (#3585) (3687fff)
- docs: flickering issues when first visit into the page (#3578) (b0afd99)
- docs: support special emoticons (#3512) (61ee1cd)
- e2e scrolling & add missing interface for sheet skeleton (#3584) (25609a0)
- fix dv custom cell permission (#3559) (d1964fc)
- fix horizontal merge wrong value (#3545) (b1ea6c3)
- fix reduce function type error (#3563) (2506c3a)
- formula: fix bycol/byrow/map (#3568) (5473a11)
- mark selection should remove after some commands execute ([#34...