🎊 [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/esm/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)
- mixed policy in rendering cells in bg extension (#4048) (2cdea37)
- move range selection not showing when dragging a selection (#4082) (9310099)
- range-selector: focus after confirm (#4029) (0e5bd85)
- selection highlight (#3919) (83c8d47)
- sheet: covert number when edit number with point (#3948) (9040e5f)
- sheets-data-validation: data-validation ref-range behavior (#4015) (fded2e8)
- sheets-drawing-ui: fix
drawing-move-right
translation in zh-CN & zh-TW (#4046) (ad2c96d) - sheets-drawing-ui: sheet-drawing memory leak (#4067) (4e64ebb)
- sheets-formula: other formula register (#4073) (403381b)
- sheets-formula: should register other formula on steady (#4069) (74b6e2b)
- sheets-hyper-link: sheet link popup should attach to cell editor (#4063) (7550f1c)
- sheets-hyper-link: update hyper link fail (#4057) (6423ff8)
- sheets-thread-comment: thread-comment resource save error (#4050) (ffd426a)
- uni: add set-editor-resize-operation (#4043) (8b6ef1d)
- uni: uni toolbar init (#3973) (8cf801a)
- change mode set cursor (#3915) (be77b78)
- chart: add chart wrapper border radius (#3962) (3d38af5)
- conditional-formatting: the data bar is rendered with a color po… (#3934) (626c9b8)
- cutting to the target range does not require filtering merge cells of the same size (#3976) (a2c292e)
- design: add blur to input number (#3971) (2272eae)
- destructuring assignment does not take effect for null (#3955) (74de2cc)
- docs-ui: hide header footer menu when modern mode (#3953) (88ff166)
- docs-ui: init table style by the cutsor position (#3936) (1615bd2)
- docs-ui: select all and delete then enter bug (#3932) (e419e1b)
- docs-ui: selection in table when across two pages (#4006) (fe6c0b2)
- docs-ui: set table cell style (#3937) (4e5323b)
- docs-ui: wrong font size in menu show (#3938) (e9e7820)
- docs: default text style in doc (#3906) (b7937cd)
- docs: doc select all content and remove when has tables (#3800) (2ad811d)
- docs: header footer render after switch from modern mode to traditional model (#3995) (fd07903)
- docs: modify link (#3946) (fc9439e)
- docs: reserve empty textRuns when transform (#3949) (39d0d46)
- docs: table context menu disable status (#3921) (05339d2)
- doc: the paragraph panel is not updated in real time (#3952) (2bea457)
- editor: formula ref selection moving not work (#3920) (9efc7eb)
- editor: the cursor position is not correct after pasting (#3960) (71c7cf4)
- editor: the rendering is not consistent with the result (#3966) (125cfa9)
- empty strings should be treated as having no value when merge (#3963) (238eef1)
- filter rollback in another worksheet (#3896) (e16aa90)
- find the first possible cursor position (#3913) (5db9233)
- fix auto size when no content in first col (#3903) (e801701)
- formula-bar: an additional selection is inserted when you click … (#3964) (8cda704)
- formula: base type for formula dependency (#4008) (0bd9c14)
- formula: calculate after renderer (#4024) (0afcc5d)
- formula: fix inverted-index-cache bug (#4020) (e194b97)
- hide align menus in zen mode (#3904) (56eeb04)
- hide table and header footer menu in ZEN mode (#3961) (e588fab)
- links pasted into cells require paragraph attributes (#3980) (69a65e8)
- parsing of number formats should be done in plugins (#3959) (fe60a29)
- range-selector: illusion of movement (#4011) (02b335c)
- render-engine: paragraph horizontal align (#4010) (045eef3)
- searcharray (#3883) (602f44a)
- sheet: fix default style cmd not register (#4014) (432091b)
- sheets-data-validation-ui: data validation style (#4000) (d793188)
- sheets-hyper-link-ui: show popup on rotate cell (#3943) (ce16b41)
- some case rich text style should convert to cell style (#3975) (47cae07)
- uni: fix formula editor (#3912) (71eca33)
Features
- docs-link: support acrossing-paragraph add link (#4104) (cea9cb8)
- docs-mention-ui: support doc mention (#4093) (5b80481)
- docs: pictures support writing to the clipboard (#4086) (bf8329f)
- drawing: drawing popup support custom menu (#4113) (1ec6dbe)
- export types for facade api (#4126) (0d07c86)
- facade: add api for cell editing (#4124) (19808d0)
- facade: add component api (#4125) (e0025ab)
- facade: export syncExecuteCommand (#4102) (d882624)
- formula: supplement ARRAY_CONSTRAIN/FLATTEN formula (#3922) (20c81f3)
- formula: supplement EPOCHTODATE/TO_DATE/ISDATE formula (#3979) (0656167)
- formula: supplement IMCOTH/IMLOG/IMTANH formula (#3909) (77e7c67)
- formula: supplement ISBETWEEN/AVERAGE.WEIGHTED/MARGINOFERROR formula (#3998) (0dc0027)
- formula: supplement ISEMAIL/ISURL/ENCODEURL formula (#3990) (224e88c)
- formula: supplement LINEST/LOGEST/TREND formula (#3965) (ff20170)
- formula: supplement ROUNDBANK formula (#4013) (7c3807f)
- render-engine: split table row (#4054) (379221e)
- sheets-data-validation: optimize data validation memory usage (#4129) (814bc84)
- sheets-ui: add hover facade api (#4092) (a23f2fb)
- docs-thread-comment: disable undo redo on docs comment (#4047) (a7a5201)
- reangeSelector supports className (#3901) (6db18f3)
- render-engine: table wrap layout type (#4021) (1762023)
- sheets-data-validation: data validation hover optimize (#4051) (17bbe40)
- sheets-data-validation: optimize data-validation error msg (#4044) (b4d4cfa)
- ui: support onFocus event in InputNumber (#4085) (8597d44)
- add async interceptor (#3894) (f007660)
- add focusing-editor context value for chart panel (#3996) (80167a1)
- add zero width paragraph break implementation (#3958) (6142b07)
- add zeroWidthParagraphBreak config (#3954) (aafe8ab)
- drawing: add optional param to contrl popup (#3935) (95bee3e)
- filter date group (#3881) (35f4567)
- formua-editor: support cross sheet references (#3933) (068f512)
- formula: add some statistical formulas (#3684) (51f1616)
- formula: supplement FORMULATEXT formula (#3968) (fc0b1fa)
- formula: supplement text formulas (#3842) (114f6dc)
- sheet drawing commands support intercepting mutations (#3885) (7f1cf91)