logo

更新日志

我们始终倾听用户反馈,不断优化和更新,让 Univer 为您创造更大价值。

🎊 Univer@v0.5.0

Univer Banner

🚧 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 from Univer to UniverPro
  • I18n artifacts updated: deprecated lib/locale/[lang].json format, please use lib/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 from body.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 run docker compose up

🎢 Special Thanks

Special thanks to the following contributors who have made this release possible:

  • @okxiaoliang4 #4056

📢 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)

Performance Improvements

🎊 Univer@v0.4.2

Univer Banner

🚧 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
  1. register plugin
pnpm add @univerjs/watermark
  1. import plugin
import '@univerjs/watermark/lib/index.css'

import { UniverWatermarkPlugin } from '@univerjs/watermark';
  1. 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,
    ),
  },
});
  1. register plugin
univer.registerPlugin(UniverWatermarkPlugin)
  • Added new Facade API for setting default custom properties for rows and columns: FWorksheet adds setColumnCustom, setRowCustom methods #3816
  • Added new Facade API for setting worksheet default styles: FWorksheet adds setDefaultStyle, setColumnDefaultStyle, setRowDefaultStyle methods, Learn more #3816
  • Added new Facade API to control gridlines visibility: FWorksheet adds setHiddenGridlines 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

  • Support for modern mode #3706
  • Improved collaboration cursor #3846 #3863
  • Various other improvements

🌐 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)
  • unitId for canvas (#3804) (7107be6)

Features

Performance Improvements

  • sheets-drawing-ui: float dom scroll performance optimize (#3838) (b4b8810)

🎊 Univer@v0.4.0

Univer Banner

🚧 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 and onBeforeCellDataChange methods to the Facade API FWorksheet for monitoring cell data changes #3626
  • Added Persian language fa_IR support #3558
  • Added REGEXEXTRACT, REGEXMATCH, and REGEXREPLACE 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

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.
  1. install:
-pnpm add @univerjs/sheets-formula
+pnpm add @univerjs/sheets-formula @univerjs/sheets-formula-ui
  1. 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'
  1. 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.
  1. install:
-pnpm add @univerjs/data-validation @univerjs/sheets-data-validation
+pnpm add @univerjs/data-validation @univerjs/sheets-data-validation @univerjs/sheets-data-validation-ui
  1. 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'
  1. 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:

  • @ParsaArvanehPA #3558
  • @rahulnayanegali #3745

📢 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 range and rect range (#3720) (3cfcf7e)
  • docs: insert image after table (#3719) (942dc4e)
  • docs: selection offset is wrong when refresh (#3724) (0babbab)
  • formula: fix some formula bugs (#3722) (559825a)
  • sheets-ui: set focus editing mode when dbclick & error resize when change sub sheet (#3725) (84ac33f)
  • add remove sheet intercept (#3622) (1f7fedb)
  • after modifying the value, the filter hidden state needs to be r… (#3601) (dc963b0)
  • array formula border deps (#3654) (8d9b1aa)
  • conditional-formatting: ranking error (#3589) (f0252ca)
  • core: fix plugin holder of univer type not set (#3702) (851b1ce)
  • dispose and createUnit cause viewport height collapse (#3598) (36b676f)
  • docs: arrow in table when table across two pages (#3692) (9e98122)
  • docs: copy table in univer (#3625) (8fb395f)
  • docs: editing drawing is not working (#3718) (b253b32)
  • docs: no need to add cursor when select multi text ranges (#3691) (f2aab59)
  • docs: optimization of text selection (#3660) (a2f2215)
  • docs: wrong header footer icon (#3689) (0cfeece)
  • fix error display not shown (433da50)
  • fix permission init should build cache (#3651) (6dac0d0)
  • formula show editor selection when using filter (#3621) (1149cff)
  • formula: add r_tree for dependency and fix bug (#3647) (f5140c0)
  • formula: array formula spill error (#3673) (e8ffd23)
  • merged cell bg not fully ender (#3671) (5bbbec3)
  • sheets-hyper-link: hyper-link operator issues (#3628) (e27bf5e)
  • sheets-ui: editor state not correctly reset when active (#3668) (16a08bf)
  • sheets-ui: error quit edit when set-range-values was called (#3697) (0c29785)
  • sheets-ui: remove useless mark dirty on data-validation & thread-comment (#3639) (6b48993)
  • sheets: correct subUnitId usage in SetStyleCommand (#3586) (b03711d)
  • ui: resolve issue preventing custom context menus from displaying (#3688) (b3a3cbc)
  • underline was hidden by background in next line (#3638) (71229b3)
  • zen: fix zen editor cannot be opened (#3699) (405a715)

Features

  • facade: add setOptions on f-data-validation-builder (#3773) (4008c86)
  • drawing: add optional property to control rotate handle of drawing element (#3750) (71ffde4)
  • facade: change data-validation facade api into sync (#3736) (cbae4c9)
  • record & replay commands with multi-mode (#3734) (047c9f2)
  • add replay-only mode to actionRecordPlugin (#3695) (a3cb5c4)
  • facade: add lifecycle and cellChange event api (#3626) (5fad25f)
  • formula: regexextract/regexmatch/regexreplace (#3282) (7ce334f)
  • sheets-ui: add formulaBar option (#3632) (d0a9f24)
  • support for rtl and farsi i18n (#3558) (b13168d)

Performance Improvements

  • permission: add row and column cache to optimize performance (#3634) (27eb2a3)
  • render in viewrange not all model (#3637) (7b1462b)

🎊 Univer@v0.3.0

Univer Banner

🚧 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:
  1. Install
pnpm add @univerjs-pro/license
  1. 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 after UniverUIPlugin
    • 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 (#3467) (1e9cc47)
  • perf improving in set style cache (#3471) (03acbbb)
  • permission check use compose points (#3540) (7ef5059)
  • protect: fix protect performance (#3520) (d8b9271)
  • scrollbar offset when moving by mouse (#3556) (5ebbc02)
  • sheet: fix span cache not right issue (#3541) (543ade1)
  • sheet: fix summary performance (#3517) (0ab07d9)
  • sheets-data-validation: data validation perf issue on getCell (#3619) (4f3cd5c)
  • sheets-data-validation: ref-range (#3533) (f7f8269)
  • sheets-drawing-ui: float-dom error on scale (#3612) (5621216)
  • sheets-hyper-link-ui: link & doc markSelection error on merged cell (#3615) (21853cc)
  • sheets-thread-comment: comment export (#3543) (33f4592)
  • sheets-ui: fix issue causing a blank screen when clicking on the border panel (#3531) (99dd398)
  • sheets-ui: formula across subsheet (#3583) (69d513e)
  • sheets: disbale zoom ration on cell editing (#3596) (051094e)
  • sheets: fix insert row col range type (#3602) (8262f7f)
  • should scroll to changed position on set range values (bb4f035)
  • ui: fix display values for certain menu items (#3522) (3035e39)
  • ui: improve handling of CustomLabel default values (#3536) (fde58d7)
  • ui: optimize Menu component rendering and filtering logic (#3552) (6338846)
  • ui: revert column width input to initial value on menu close (#3562) (3cc2392)
  • use tab to insert new row (#3524) (1c34bd0)

Features

Performance Improvements

🎊 Univer@v0.2.15

Univer Banner

🚧 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:

  • Optimized merged cell implementation, significantly improving performance with large datasets #3403
  • Added new formula functions: MID and LEFTB #3417 #3418
  • FWorksheet.getRange now supports A1 notation input #3504
  • Now supporting 321 formula functions, with a goal of 500+

🐞 Bug Fixes

  • Fixed an issue where column widths were not preserved when pasting from Excel #3450
  • Resolved a problem where clicking the scrollbar didn't trigger scroll commands #3429
  • Improved permissions, allowing cell size adjustment when setEditable(false) #3464
  • Fixed the "permissionPoint does not exist!" error when recreating units #3392
  • Column header arrows are now hidden when contextMenu is set to false #3444
  • Addressed incomplete display issues in hyperlink editing #3462

📝 Univer Docs

  • Stability improvements

🌐 Univer Server

  • Table insertion is supported after importing the Docx file

📢 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-21)

Bug Fixes

  • add filter with one cell should adjust expend range permission (#3469) (b4b0763)
  • clipboard: fix paste col width (#3450) (2175c49)
  • design: prevent suffix showing with allowClear is false (#3449) (32b2cac)
  • docs-ui: doc list can't toggle (#3473) (3dc6d95)
  • docs: scroll to selection (#3458) (3cf7b46)
  • docs: wrong ime position after scroll (#3457) (6e6b0b2)
  • fix edit cell with remove sheet (#3474) (38b03fb)
  • fix pasting twice in formula editor (#3481) (13cf373)
  • formula: binary search supports match type (#3402) (6db4cf8)
  • formula: fix some bugs (#3470) (7c66482)
  • hide sheet should operation right sheet (#3468) (a4bfe0d)
  • menu: sort menu should be hide (#3505) (9530fe4)
  • numfmt: do not block when syntax is not supported (#3491) (b8c9256)
  • scroll cmd for pointer down at scrolltrack (#3429) (8e9f513)
  • sheet: getDiscreteRanges filter empty cell (#3437) (92a063a)
  • sheets-data-validation: data validation event trigger before data applied (#3498) (c4601a0)
  • sheets-data-validation: data-validation oom on extreme-big-range (#3494) (86c2dd9)
  • sheets-data-validation: large data validation oom (#3492) (42ce257)
  • sheets-hyper-link-ui: input link error (#3513) (b4fcb4a)
  • sheets-hyper-link-ui: link redo undo (#3465) (9ddcaf5)
  • sheets-hyper-link: build url (#3503) (25b7b66)
  • sheets-thread-comment-ui: delete comment error (#3476) (01a78da)
  • sheets-thread-comment: comment ui issues (#3510) (05616d4)
  • sheet: set selection should ensure the selection is not null (#3497) (7b89f27)
  • span: fix editor position not right issue (#3443) (4b86a65)
  • type errors (20d35a3)
  • ui: hide column header arrow when contextMenu is false (#3444) (1355807)

Features

  • core: unify the handler of get plain text from rich-text model (#3421) (e9395d2)
  • demo: add support for dynamic imports (#3433) (33571b6)
  • facade: add FWorksheet.getRange(a1Notation) (#3504) (a697a49)
  • formula: add function leftb (#3418) (b66e8ce)
  • formula: add function mid (#3417) (32fb95e)
  • sheets-data-validation: data validation optimize (#3422) (93c3659)
  • sheets-ui: undo set cols visible should scroll to cols (#3355) (ed6d783)

Performance Improvements

🎊 Univer@v0.2.14

Univer Banner

🚧 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 hyperlinks in rich text within cells #3322
  • Format painter now supports conditional formatting #3420
  • Added 7 new lookup and reference formula functions #3352
  • Introduced new formula functions: bycol, byrow, map, reduce, and scan #3320
  • Added 16 new mathematical formula functions #3381
  • Now supporting 319 formula functions, with a goal of 500+

🐞 Bug Fixes

  • Optimized scrolling performance when using filters with large datasets #3396
  • Permission errors no longer output to console #3363
  • Optimized behavior related to formula IDs #3339
  • Fixed issue where custom property was being overwritten as { __link_url: "" } #3434

💔 Breaking Changes

  • Refactored data-validation model #3383

📝 Univer Docs

💔 Breaking Changes

  • refactor of doc selections #3299
    • The TextSelectionManagerService service was renamed to DocSelectionManagerService.
    • Some of the APIs in the docs package were moved to the docs-ui package.
    • TextSelectionRenderManagerService is migrated to the docs-ui package, renamed to DocSelectionRenderService, and the IRenderModule interface is implemented.

📢 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-13)

Bug Fixes

  • border auxiliary is unexpectedly cleared after the merge cell is hidden (#3358) (c11c324)
  • cell margin top is not right (#3382) (8b4027e)
  • cell value should adjust rich text & function (#3385) (ca628e1)
  • docs-drawing: drawing resource (#3410) (4f2b148)
  • docs-ui: editor focusing conflict when update content (#3423) (f2deabc)
  • formular: fix sheet maximum (#3384) (41affb7)
  • formula: update formula id (#3339) (1434966)
  • incorrectly quit autofill mode (#3390) (f0fc942)
  • render: fix the issue loop span many times (#3394) (f3d55f7)
  • sheet getRowVisible lags after filter (#3396) (cb2cf7e)
  • sheet: adjust move range old mutation not has fromRange property (#3361) (11748a5)
  • sheet: fix type error (#3401) (7ce40a5)
  • sheet: merge cell custom property (#3365) (880ef44)
  • sheets-ui: recover float-dom delete menu & focusing when zen-editor mount (#3426) (2bf1177)
  • sheet: the first style of span is not set is merge to true (#3398) (6def773)
  • sort: i18n error in sheet sort (#3419) (771eeb6)
  • the viewport size is too big after cancel filter rule, then viewport main is blank because graphic mem is full. (#3415) (f31cefd)
  • ui: prevent dropdown usage when menu bar is disabled (#3400) (5f2e9fa)
  • sheet: custom will overwrite the original value (#3431) (e1042d4)
  • sheets-ui: formula error when cross sub-sheet (#3436) (97ae314)

Features

  • action-recorder: add experimental action recorder plugin (#3386) (83238fa)
  • conditional-formatting: support formatting painter (#3420) (2b121d7)
  • doc-hyper-link: polyfill history data for doc hyper link (#3406) (5f2c2fe)
  • formula: add some lookup formulas (#3352) (5ab9c7d)
  • formula: add some math formulas (#3381) (e736b8a)
  • formula: bycol/byrow/map/reduce/scan (#3320) (85b9d90)
  • sheets-hyper-link-ui: sheet link support rich-text mode (#3322) (d19d224)
  • sheets-ui: optimize shortcut for comment & hyperlink editor (#3434) (9604020)

🎊 Univer@v0.2.12

Univer Banner

🚧 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 support to disable transform for floating elements by setting allowTransform to false when adding them to a worksheet. #3342
  • Added 3 new formula functions: ISFORMULA, N, and NA. #3304
  • Added new facade APIs supporting cell data retrieval (FRange.getValues), simplified merge operations, clipboard functionality, and selection management. #3344 #3289 #3216
  • Now supporting 291 formula functions, with a goal of 500+

🐞 Bug Fixes

  • Fixed scroll freezing issue when filtering large datasets by optimizing row visibility checks. #3319
  • Fixed errors in the UniScript panel for smooth typing and editing. #3350
  • Fixed permission-related rendering bugs. #3300
  • Other optimizations and fixes

💔 Breaking Changes

A new way to customize the menu

Refactored the menu service and configuration service (#3246).

The purpose is to prepare for the inability to specify menu sorting and to provide simplified registration of menus and more customization capabilities in the future.

Key differences:

  1. Service Change:
    • Before: Used IMenuService for menu management
    • After: Now uses IMenuManagerService

IMenuService will provide several versions of fallback compatibility for developers to migrate.

- @IMenuService private readonly _menuService: IMenuService,
+ @IMenuManagerService private readonly _menuMangerService: IMenuManagerService,
  1. Menu Registration:
    • Before: Added menu items individually using addMenuItem
    • After: Uses a new mergeMenu method to define the entire menu structure
- this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(MenuItemFactory), {}));
+ this._menuMangerService.mergeMenu({
+     [RibbonStartGroup.OTHERS]: {
+         [MenuItemId]: {
+             order: 10,
+             menuItemFactory: MenuItemFactory
+         },
+         // ... other menu items
+     },
+     // ... other menu groups
+ });
  1. Menu Item Configuration:
    • Before: Included positions and group properties in menu item definitions
    • After: These properties are now defined in the menu item configuration within the mergeMenu method, rather than in the menu item definition itself
 return {
     id: MENU_ITEM_ID,
     type: MenuItemType.BUTTON,
     icon: 'IconName',
     tooltip: 'tooltipKey',
     title: 'titleKey',
-    group: MenuGroup.TOOLBAR_FORMULAS_INSERT,
-    positions: [MenuPosition.TOOLBAR_START, MenuPosition.CONTEXT_MENU],
 };

These changes provide a more centralized and structured approach to menu management. Univer plugin developers will need to update their menu registration code to align with this new structure.

📝 Univer Docs

  • Added support for line height settings in documents, allowing both fixed values and multiple line spacing options. #3176
  • Hyperlink refactor. #3148
  • Other optimizations and fixes

📢 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-07)

Bug Fixes

  • auto-fill: change apply type will undo last commands (#3311) (391c523)
  • clipboard: copy will not use filtered-out rows content (#3292) (ec601c3)
  • conditional-formatting: init view model (#3349) (ad145f2)
  • conditional-formatting: render cache error (#3345) (e812441)
  • conditional-formatting: the maximum and minimum values are corre… (#3270) (5d41a9b)
  • crosshair: fix no plugin name for the plugin (19564c7)
  • design: popup style (#3325) (675933c)
  • detect row/col index in selection (#3348) (c9fef1b)
  • docs: link break in link (#3254) (ff17894)
  • drawing issues (#3245) (d848d33)
  • filter: filter range change error when remove rows/cols (#3324) (a70ef37)
  • filter: filter render controller should dispose its vars when unit disposed (#3340) (be7da80)
  • fix dependencies of telemetry (#3280) (965064e)
  • fix the sorting menu item display position (#3314) (3f18a4f)
  • fix threshold error handling (#3261) (1e1dde5)
  • fix uni menu (#3338) (af63f7d)
  • font rendering diffrange condition fix (#3264) (c920d53)
  • formula: bracket has more blank (#3331) (4900a3c)
  • formula: fix formula paste (#3257) (771f191)
  • formular: fix dependency performance issue (#3359) (f2f7f5b)
  • mobile selection did not drawing (#3312) (d1773ed)
  • permission: fix permission render bugs (#3300) (9751c0a)
  • selection type did not update when set type to normal(0) (#3317) (2909cf8)
  • sheet-data-validation: auto-format data validation non-standard date string & data-validation auto-fill (#3336) (fc3dc44)
  • sheets-drawing-ui: sheet-drawing error receive data from doc (#3337) (b8e6e42)
  • sheets-drawing-ui: sheet-drawing-import (#3277) (183b3e0)
  • sheets-formula: fix the issue of missing formula description list (#3323) (9d314ce)
  • sheets-ui: auto-fill will copy auto-height strategy from origin region (#3287) (04f156e)
  • sheets: skip remove-sheet on watch range if skipIntersects was set (#3356) (2ee440a)
  • sheets: undo set col width should set to the original value (#3353) (c5ebb79)
  • sheet: unhide row button will update when skeleton change & auto-fill will check empty (4598c91)
  • skip invisible row in filtered state for performance (#3319) (5ada754)
  • slide: 2024 width (#3156) (1bddcb8)
  • sync mutation will not quit auto-fill mode (#3351) (8a7545a)
  • unexpected cross viewport selection because it counts rowheader (#3296) (ebde3da)
  • uni-formula-ui: uni formula deps error (#3302) (5ab492f)
  • uni: fix missing undo & redo menu item (#3343) (15f18c8)

Features

🎊 Univer@v0.2.11

Univer Banner

🚧 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 cross-highlighting plugin, which highlights the row and column of the selected cell when enabled
  1. Install the following packages:
pnpm add @univerjs/sheets-crosshair-highlight
  1. Import the plugins:
import '@univerjs/sheets-crosshair-highlight/lib/index.css';
 
import { UniverSheetsCrosshairHighlightPlugin } from '@univerjs/sheets-crosshair-highlight';
  1. Add locale resources:
import { LocaleType, Tools } from '@univerjs/core';
+import SheetsCrosshairHighlightZhCN from '@univerjs/sheets-crosshair-highlight/locale/zh-CN';
 
const univer = new Univer({
  theme: defaultTheme,
  locale: LocaleType.ZH_CN,
  locales: {
    [LocaleType.ZH_CN]: Tools.deepMerge(
+      SheetsCrosshairHighlightZhCN 
    ),
  },
});
  1. Register the plugin:
univer.registerPlugin(UniverSheetsCrosshairHighlightPlugin);
  • Added 26 new financial formula functions #3137
  • Added 26 new engineering formula functions #3070
  • Added row and column operation Facade APIs #3163
  • Added comment and floating DOM Facade APIs #3200
  • Now supporting 288 formula functions, with a goal of 500+

🐞 Bug Fixes

  • Fixed abnormal issue when users of lower versions of React upgrade to 0.2.9 #3248
  • Fixed modifying selection range with shift+arrow keys when selected #3193
  • Fixed scrolling lag caused by incorrect destruction after import #3205
  • Fixed decimal place interaction #3195
  • Fixed number format to support percentage calculation display #3195
  • Fixed number format to skip null or undefined #3188
  • Fixed underline not displaying when bottom-aligned #3139
  • Fixed merged cell performance optimization #3187
  • Fixed inability to input dates in STOP mode #3237
  • Optimized formula calculation precision #3244

📝 Univer Docs

🐞 Bug Fixes

  • Fixed selection issues in tables and paragraphs #3170
  • Optimized table operations #3214 #3234
  • Improved copy and paste functionality #3233 #3227
  • Various other optimizations

🌐 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:

  • Fixed the export failure issue, no need to configure the S3 address after deployment.
  • Optimizations for domestic developers' deployment:
    • Choose appropriate mirror addresses based on network conditions;
  • Improved the installation experience of one-click deployment scripts, including:
    • System checks before installation;
    • Service health checks after installation;
    • Installation guidance of Docker if not exists;
    • Simplified one-click deployment command: bash -c "$(curl -fsSL https://get.univer.ai)"

📢 Join the Conversation

We welcome your input and insights as we embark on this exciting journey. Connect with us on:

📝 Changelog

Full changelog (2024-08-30)

Bug Fixes

  • sheet: render after every mutation executed (#3258) (91217dc)
  • sheets-data-validation: cant resume data-validation on undo remove-sheet (#3260) (7e9e69f)
  • some operations can be performed when have view permission (#3180) (8664a75)
  • add missing exports (c6ee109)
  • add rows by paste should support undo (#3208) (9ee12c2)
  • conditional-formatting: hidden values do not take effect when us… (#3228) (4e888d0)
  • conditional-formatting: setting highlight error can not be confi… (#3229) (5c16e04)
  • copy paste between sheet and doc (#2993) (617986d)
  • docs: copy paste image form univer doc to univer doc (#3227) (c2f417c)
  • docs: copy table only has one row and col (#3234) (08034d0)
  • docs: find cursor by cood (#3105) (5d80b5b)
  • docs: no need to scroll when enter zen mode (#3222) (1ebbe27)
  • docs: paste content to univer (#3071) (97e19b3)
  • docs: paste table after table (#3214) (1899d34)
  • docs: remove content and insert drawing (#3198) (f68e8eb)
  • docs: reserve the first remove text run (#3225) (01fdcca)
  • docs: selection error in table and paragraph (#3170) (c6f2eb7)
  • docs: show font family after copy from header (#3233) (480e9f1)
  • docs: wrong font family in menu (#3232) (f896261)
  • editor: boolean values do not need to be processed (#3204) (f060863)
  • fix the judgment logic of editor returning empty textRun (#3211) (9a57c5d)
  • formula: fix operation accuracy (#3244) (20b4dd5)
  • formula: parser error (#3174) (6e2db5a)
  • modify the rich text judgment logic (#3178) (0431c1f)
  • multi normal selections did not refresh when changing sheets. (#3166) (1314465)
  • numfmt: add or substract decimal inheritance (#3195) (67f25c8)
  • numfmt: menu circular dependencies (#3248) (5087f29)
  • numfmt: numfmt skip null or undefined (#3188) (a923a93)
  • numfmt: support edit percent with numfmt (#3190) (d8ca9f6)
  • paste col should keep wider column width (#3185) (e1f4f46)
  • paste should clear style when paste to editor in sheet (#3215) (781c72e)
  • retry interceptor params (#3220) (2e2044a)
  • sheet dispose cause scroll update scene size failed. (#3205) (6e1a234)
  • sheet text (#3189) (5fd5350)
  • sheet: insert wrong columns when shift right (#3193) (ebe1dda)
  • sheet: make dirty when only local false (#3247) (5b31804)
  • sheets-data-validation: data validation auto height (#3175) (9e53c79)
  • sheets-data-validation: date picker can't input by type when errorStyle is STOP (#3237) (99cfb4b)
  • sheets-drawing: drawing snapshot error (#3230) (f5f52bf)
  • sheets-filter: some filter bugs (#3199) (ec69831)
  • sheets-sort: wrong order colIndex (#3196) (33fdbde)
  • sheets-ui: popup can't show (#3252) (f1a45fd)
  • sheets: do not copy cell bg color to rich text bg (#3207) (e293aca)
  • sheets: no style in blank cell (#3231) (e9360c4)
  • sheets: ref-range watch-range on insert-move-down & insert-move-right (#3218) (ca0f47a)
  • underline not work when align bottom & moving clipboard controller from steady to render (#3139) (10484d8)

Features

  • export facade api (1d4b185)
  • facade: add facade api for sheets-thread-comment & float-dom & optmize data-validation facade api (#3200) (5aa3342)
  • facade: add Facade Worksheet row column API (#3163) (7d903d7)
  • facade: add redo undo facade hooks (#3217) (a2be933)
  • formula: add some engineering functions (#3070) (dbe1dab)
  • formula: add some financial functions (#3137) (62bb41b)
  • pivot: fix scroll height & add hooks to format paint (#3224) (84e8c89)
  • sheet: dialog close all (#3240) (f06192d)
  • sheet: performan the expand range (#3187) (4a72204)

🎊 Univer@v0.2.9

Univer Banner

🚧 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 more Facade APIs related to permission protection #3132
  • Added more Facade APIs related to filter #3103
  • Added more Facade APIs related to pivot table
  • Added internationalization support for currency shortcuts #3062
  • Added rank/rank.avg/rank.eq sorting functions #3140
  • 236 formula functions are supported, with a goal of 500+

🐞 Bug Fixes

  • Fixed an issue with formula calculations #3114
  • Fixed an issue where imports were not displayed completely #3114
  • Fixed an issue with incorrect positioning of the floating DOM layer #3152
  • Fixed a timing issue during the initialization of conditional formatting #3142
  • Fixed an issue where custom menu items were hidden by default when hidden$ was not configured #3122
  • Fixed a date validator error when errorStyle=STOP was set in sheets data validation #3102

💔 Breaking Changes

  • The method to get workbook data has been updated. Also, FWorkbook.getSnapshot will be removed in the future, so please switch to the FWorkbook.save method. #3128

  • Some useless properties on snapshots are removed: houldStartRenderingImmediately, container, selections #3154

  • The package name for the pivot table plugin has been updated from @univerjs-pro/pivot-engine to @univerjs-pro/engine-pivot. Additionally, the default configuration options required by the plugin have been removed.

install the new package:

pnpm add @univerjs-pro/sheets-pivot @univerjs-pro/sheets-pivot-ui
- pnpm add @univerjs-pro/pivot-engine
+ pnpm add @univerjs-pro/engine-pivot

plugin registration:

-univer.registerPlugin(UniverSheetsPivotTablePlugin, {
-  notExecuteFormula: true,
-  registerInOneThread: true,
-})
+univer.registerPlugin(UniverSheetsPivotTablePlugin)
univer.registerPlugin(UniverSheetsPivotTableUIPlugin)

📝 Univer Docs

🐞 Bug Fixes

  • Fixed bugs in docs-ui / docs / docs-drawing-ui

📢 Join the Conversation

We welcome your input and insights as we embark on this exciting journey. Connect with us on:

📝 Changelog

Full changelog (2024-08-23)

Bug Fixes

  • conditional-formatting: initialization timing problem (#3142) (7d1c9d6)
  • crosshair: fix rendering controller (f697951)
  • debug currentSkeleton$ if param is null (#3164) (3283d61)
  • docs-ui: limit list maxLevel to 3 when in table & set line-through style on checklist (#3096) (9a62d77)
  • docs-ui: link & checklist can't work on header-footer (#3107) (106e7c4)
  • docs: disable some menu items when no selections (#3094) (07a24cb)
  • docs: find cursor by coods (#3143) (9998feb)
  • docs: line space between image and line (#3101) (32915ff)
  • docs: no need to scroll to selection when resize page (#3092) (9697d87)
  • fix issue where custom menu items are hidden by default when hidden$ is not configured (#3122) (701131d)
  • fix some permission bugs (#3037) (eb30bdc)
  • fix type error (983a323)
  • formula: array input (#3097) (774d09c)
  • formula: skip tree after add to formula run list (#3114) (a238ea9)
  • hyper-link ref-range error on filter (#3135) (014dd67)
  • permission: optimize permission calculation logic in dv (#2811) (d127e02)
  • ref selection expand after bottom line is over top line, and ref selection fill area(primary cell) and formula editor should clear when change sheet. (#3104) (e73fc3c)
  • selection render and insert char (#2982) (411d328)
  • sheet: defined name panel style (#2797) (23a581b)
  • sheet: mixin should not use class self (#3130) (1d7c3ab)
  • sheet: move function to a file and export (#3125) (8483725)
  • sheets-data-validation: data-validation absolute offset (#3091) (135e5c0)
  • sheets-data-validation: date validator error when errorStyle=STOP was set (#3102) (a5015c8)
  • sheets-drawing-ui: float-dom-layer position not correct on sheets and uni mode (#3152) (4e434b0)
  • sheets-ui: data-validation dropdown hidden when selection change (#3119) (b8bf3b1)

Features