Giter Club home page Giter Club logo

univer's Introduction

Univer

The Ultimate Office Suite of the Next Generation.
Extensible. High-performance. Embedded to your application.

English | 简体中文 | 日本語
Official Site | Documentation | Online Playground | Blog


Trendshift

Table of contents

🌈 Highlights

  • 📈 Univer is designed to support spreadsheets, documents and presentation.
  • ⚙️ Univer is easily embeddable, allowing seamless integration into your applications.
  • 🎇 Univer is powerful, offering a wide range of features including formulas, conditional formatting, data validation, filtering, collaborative editing, printing, import & export and more features on the horizon.
  • 🔌 Univer is highly extensible, thanks to its plug-in architecture and Facade API that makes it a delight for developers to implement their unique requirements on the top of Univer.
  • 💄 Univer is highly customizable, allowing you to personalize its appearance using themes. It also provides support for internationalization (i18n).
  • ⚡ Univer in performant.
    • ✏️ Univer boasts an efficient rendering engine based on canvas, capable of rendering various document types flawlessly. The rendering engines supports advanced typesetting features such as punctuation squeezing, text and image layout and scroll buffering.
    • 🧮 Univer incorporates a lightning-fast formula engine that can operate in Web Workers or even on the server side.
  • 🌌 Univer is a highly integrated system. Documents, spreadsheets and slides can interoperate with each others and even rendered on the same canvas, allowing information and data flow within Univer.

✨ Features

Univer provides a wide range of features for spreadsheets, documents and presentations. Here are some of the key features:

📊 Univer Sheet

  • Core Features: Univer supports core spreadsheet functionality, including cells, rows, columns, worksheets, and workbooks.
  • Formulas: Extensive support for various formulas, including mathematical, statistical, logical, text, date and time, lookup and reference, engineering, financial, and information formulas.
  • Permissions: Allows restricting access to specific elements.
  • Number Formatting: Supports formatting numbers based on specific criteria.
  • Hyperlinks: Enables linking to external websites, email addresses, and other locations within a spreadsheet.
  • Floating Images: Allows inserting images into a spreadsheet and positioning them anywhere on the sheet.
  • Find & Replace: Provides the ability to search for specific text within a spreadsheet and replace it with other text.
  • Filtering: Allows filtering data based on specific criteria.
  • Sorting: Allows sorting data based on specific criteria.
  • Data Validation: Supports restricting the type of data that can be entered into a cell.
  • Conditional Formatting: Supports applying formatting to cells based on specific criteria.
  • Comments: Enables adding comments to cells to provide additional information.
  • Collaborative Editing1: Supports multiple users editing a spreadsheet simultaneously.
  • Printing1: Allows printing a spreadsheet or exporting it to PDF.
  • Import & Export1: Support for importing and exporting data in XLSX.
  • Charts2: Third-party chart support via VChart.

📝 Univer Doc (Under Development)

  • Core Features: Univer supports core document features, including paragraphs, headings, lists, superscript, subscript, and more.
  • Floating Images: Allows inserting images into a document and supporting text and image layout.
  • Headers & Footers: Allows adding headers and footers to a document.
  • Comments: Enables adding comments to a document to provide additional information.
  • Collaborative Editing1: Supports multiple users editing a document simultaneously.

📽️ Univer Slide (Under Development)

  • Core Features: Univer will support core presentation features, including slides, shapes, text, images, and more.

🌐 Internationalization

Univer supports multiple languages, including:

  • zh-CN
  • zh-TW
  • en-US
  • ru-RU
  • vi-VN

zh-CN and en-US are officially supported, while the others are contributed by the community.

You can add the language you want by Using Custom Locales. You can also help us add new language support by referring to the contribution guide.

👾 Showcase

You can find all the examples in the Univer Examples.

📊 Spreadsheets 📊 Multi-instance 📊 Uniscript
📊 Big data 📊 Collaboration 📊 Collaboration Playground
📊 Import & Export 📊 Printing 📝 Documents
📝 Multi-instance 📝 Uniscript 📝 Big data
📝 Collaboration 📝 Collaboration Playground 📽️ Presentations
📊 Zen Editor Univer Workspace (SaaS version)  
 

💬 Community

Univer is an inclusive and welcoming project. Please read our Code of Conduct before participating in the community.

Join the Univer community:

You can also find Univer on:

Twitter | YouTube

🤝 Contribution

We appreciate any kinds of contributing. You can submit issues or feature requests to us. Please read our contributing guide first.

If you would like to contribute code to Univer, please refer to the contributing guide as well. It would guide you through the process of setting up the development environment and submitting a pull request.

❤️ Sponsors

The growth and development of the Univer project rely on the support of its backers and sponsors. If you are interested in supporting our project, we kindly invite you to consider becoming a sponsor. You can sponsor us through Open Collective.

Thanks to our sponsors, just part of them are listed here because of the space limit, ranking is no particular order:

📄 License

Copyright © 2021-2024 DreamNum Co,Ltd. All Rights Reserved.

Licensed under the Apache-2.0 license.

Footnotes

  1. These features are provided by the non-OSS version of Univer, which is free for commercial use and also includes paid upgrade plans. 2 3 4

  2. VChart is a third-party library that provides chart support for Univer. You can find more information here: univer-vchart-plugin.

univer's People

Contributors

a1yamino avatar aquahydro avatar dr-univer avatar dushusir avatar enochgao avatar fmwww avatar gggpound avatar gityoog avatar hexf00 avatar howtopick avatar jerry-tanghao avatar jikkai avatar jocs avatar karlsbeard avatar kovsu avatar ljcoder2015 avatar lumixraku avatar lyking90 avatar m310851010 avatar mcdonald755 avatar scorp1k avatar semmywong avatar siam-ese avatar vickun4937 avatar weird94 avatar wpxp123456 avatar wzhudev avatar yangluoshen avatar ybzky avatar yuhongz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

univer's Issues

[WIP] RFC: Univer Architecture Optimization

Focus on transforming the core. After the structure is stable, plug-ins will be involved

Architecture related tasks

  • core: Circular dependencies
    • The worksheet workbook should be split into model and api, the former only includes snapshot and get related, the latter is set modification @eiji-th
    • undo in CommandManager @eiji-th
    • Styles module changed to worksheet. When transferring, the modification of the worksheet does not depend on the workbook, and the two are decoupled @eiji-th
    • Action Apply @Dushusir
  • ui-plugin-sheets: Circular dependencies @TonyTonyChopper123
  • Using DI: sheets-plugin-numfmt @eiji-th
  • Using DI: sheets-plugin-find @TonyTonyChopper123
  • Move @wendellhu/redi into core package @wzhudev
  • Add a dependency layer in core package @wzhudev
  • Check for typos, like genname @eiji-th
  • Remove unneeded modules like Server @Dushusir
  • Interface Enum Types Const These directories are merged into the Types directory @Dushusir
  • Don't put Univer in Basics @wzhudev
  • Univer and Context are also a problem of holding each other, transform it into an injector on Univer @wzhudev
  • [Optional] Remove index.ts, remove the introduction of ./index
  • [Optional] Remove static methods and propertoes

House keeping

The last step to Univer Architecture Ready milestone is to clean up legacy code.

  • [ ] fix unit tests (we will do it layer when we implement features)
    • setup unit tests environment @jikkai
  • fix type problems & lint problems
  • remove legacy system
  • remove unused files

[Feature Request] import & export

Initial checklist

  • Is this really a problem?
  • I have searched the Github Issues for similar issues, but did not find anything.

Problem

How do I export or save it?

Solution

I can't find the exported code

Alternatives

no

[Bug] pnpm run dev:sheet 运行无法编辑

初始清单

  • 这真的是个问题吗?
  • 我已经在 Github Issues 中搜索过了,但没有找到类似的问题。

受影响的包和版本

dev分支

复现步骤

git clone https://github.com/dream-num/univer.git 
pnpm i
pnpm run dev:sheet

预期行为

可展示、可编辑

实际行为

表格可点击,可更改样式,但不可输入内容

image

运行环境

Chrome

操作系统

macOS

构建工具

esbuild

作为普通开发人员,最需要的在线预览Word和Excel

Univer很惊艳,能把Office三大利器制作成在线编辑这个难度极高。
但是,我们目前遇到的最大问题其实是:在线预览Word和Excel

这个需求极大,或者说这个是刚需,至于在线编辑Word和Excel,反而并不那么大。
因为,更多用户还是喜欢用Office软件本地编辑。

所以,希望能最先开发这个功能:在线预览Word和Excel。

(1)比如 https://officeweb365.com?src=Word_Online_URL
(2)微软的 https://view.officeapps.live.com/op/view.aspx?src=URL
(3)葡萄城的开发组件 https://www.grapecity.com.cn/
都是通过云服务收费,提供在线预览。

你这个如果做成这种最好,通过URL传递远程word或者exel, 然后在线预览。
https://dream-num.github.io/doc?url=http://xx.com/test.docx
https://dream-num.github.io/xls?url=http://xx.com/test.xls

Viewing features

  • Scrolling:
    • mouse scrolling
    • focus cell make scrolling
    • scrolling to specific position
  • Zooming:
    • mouse wheel with shortcut key
    • slider bar in sheetbar
  • Use operations to set scrolling positions and zooming scales
  • Freezing
    • context menu

Migrate doc to new architecture and use as sheet's cell editor

  • Migrate doc commands & shortcuts to new architecture
  • Remove legacy CommandManager
  • Move UI framework to base-ui
    • Toolbar
    • Context menu
    • Slots for business to add their own components (later)
  • Embed doc as sheet's cell editor (maybe fx editor in the near future)
  • Support running multi-instances of different business type in underlying services (shortcut, menu)
    • IContextService
    • IUndoredoService
    • IShortcutService
    • IMenuService (later)

The bug in undo and redo function.

I found that the framework core records all user commands in the _undoStack, including non editing operations such as selecting cells.

This results in if I modify the table content and frequently switch between selected cells, and then want to undo the modified content, I will need to click the undo button multiple times.

[bug]运行npm run dev:sheet报错

运行npm run dev:sheet报错Uncaught SyntaxError: The requested module '/@fs/F:/univer/packages/core/src/DI/Decorators.ts?t=1689907140611' does not provide an export named 'AsyncDependencyItem'

Basic UI components & services

Implements basic components and services to improve code reuse and provide consistent behavior across different plugins and platforms.

Deadline Oct 14, 2023

Components

  • Message
  • Button
  • Icon: integrate @univerjs/icon
  • Input @Dushusir
  • InputNumber @Dushusir
  • Container
  • Layout
  • Slider
  • Tooltip

Docs

  • Design Token / Palette
  • Deploying storybook

Services

Services should be platform-agnostic.

  • ThemeService (manages themes and dark mode)
  • IMessageService

Deadline Oct 27, 2023

Components

  • Dropdown
  • CanvasIcon: rename CanvasIcon to BorderLine
  • Menu
    • Item
    • NeoCustomLabel
    • CustomLabel: completely deprecate theCustomLabel component
    • Select
  • ColorPicker
  • ColorPickerCircleButton

Deadline Nov 4, 2023

Components

  • Tabs
  • Dialog: rename Modal to Dialog
  • Notification @Dushusir
  • Confirm

Services

  • INotificationService @Dushusir
  • IDialogService
  • IConfirmService

Deadline Nov 11, 2023

Components

  • CellRange
  • Collapse
  • Separator
  • ResizeDialog
  • SiderModal
  • Avatar
  • Checkbox
    • CheckboxGroup
  • Radio
    • RadioGroup
  • Drag
  • Slot
  • Modal

Not in plan

Components

  • DatePicker move to #378

无法导入大数据

  1. 无法导入大数据,简直就是个笑话
    2.你这开发的,连个demo都不算,怎么通过评审的

建议

请问作者 这个现在怎么使用呢,需要下载源码后自己打包,和luckysheet一样?

Toolchain: CI / monorepo managing tools / Git hooks etc.

  • Adopt a monorepo managing tool (lerna / turbopack / rush)
    • Make sure building toolchain works
    • Incremental building & testing on CI
  • Commit lint
    • Enforce Angular commit style
    • Eslint
  • Migrate CI from CircleCI to GitHub Actions
  • CI
    • Build
    • ESLint
    • Type checks
  • Support package.json exports in plugins
  • Preview link for each PR
  • Provide a vscode task to launch debug windows
  • Adopt typedoc to generate API website (maybe later)
  • Migrate test framework to vitest

Redesign UI system

Menu Registry

UI Library @jikkai

  • Remove abstract Component and PureComponent
  • Remove Preact and only React, remove abstracting layer at packages/base-ui/src/Framework/Preact.tsx
  • Adopt React Hooks Components

UI Parts

  • ToolbarService unnecessary
  • ContextMenuService unnecessary
  • (optional) FooterService @jikkai
  • (optional) PanelService @jikkai
  • (optional) CanvasPopoverService
  • ShortcutService @wzhudev

Components

Design "Facade" layer

Facade expose API to SDK users and it also serves as an interpreter of AppScript.

Selection features

  • Row & col selections @DR-Univer
  • Change selections with pointer @DR-Univer
  • Change selections with keyboard @wzhudev
    • Simple movement with keyboard
    • Move to the next cell that has value
    • Shift-key moving
    • Ctrl-A
    • Tests

Formula engine basics

  • integrate to SheetInterceptorService ViewModel
  • integrate to CellEditorService
  • #293 @wzhudev
  • formula-input
    • Temporary style design (supports in-memory text highlighting: formulas, syntax coloring).
    • Formula-selection
    • Shotcut
    • Cross-sheet selection.
  • formula engine
    • Integrate into the DI system.
    • Successfully compiled the let and reduce functions.
    • Integrated with view model
  • sheets-plugin-formula UI @Dushusir
    • Formula real-time search list
    • Formula details pop-up windows data structure
    • Formula details pop-up window UI
    • toolbar formula menu button and dropdown
    • More Functions dialog
    • toolbar formula tab
    • error tootip @Dushusir basic component+cell notification service
    • integrated with worker.
    • Integrated with refservice.
    • The formula supports offset referencing in dropdown filling and copy scenarios. @Dushusir

setRangeMerge not working

I have a problem with the setRangeMerge function. When I try to use it I get the following error:

api.js:3114
Uncaught TypeError: Cannot set properties of undefined (setting '9_3')
at Object.setRangeMerge (api.js:3094:41)
at UnisciCelle (prova_LuckySheet.html:45:20)
at HTMLInputElement.onclick (prova_LuckySheet.html:21:98)

This is my code:

<script src="https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/plugins/js/plugin.js"></script> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/luckysheet.umd.js "></script>
<title>EasyGrooming</title>

    <input type='button' id='btnUnisci' value='Unisci celle' onclick='UnisciCelle()'>
    <input type='button' id='btnLeggiCella' value='Leggi cella' onclick='LeggiCella()'>
    <div id="luckysheet" style="margin:0px;padding:0px;position:absolute;width:600px;height:70%;"></div>
        
 
<script> 
    $(function () 
    {
        //Configuration item
        var options = {
            container: 'luckysheet' //luckysheet is the container id
        };
        luckysheet.create(options);
    });
    
    function UnisciCelle()
    {
        alert("Here I am!");
        luckysheet.cancelFrozen();
        luckysheet.setRangeMerge("all", "D10:E15");
    }
    function LeggiCella()
    {
        luckysheet.setRowHeight({5:50, 6:80});
        luckysheet.setCellValue(3, 4, "puppa");
        luckysheet.setCellFormat(4, 5, "bd", {borderType: "border-right",style: "1", color: "#ff0000"});
        luckysheet.setRangeShow("D10:E15");
        var sVal = luckysheet.getCellValue(0, 0);
        alert("Valore : " + sVal);
    }
    
</script>
  
</html>

Can somebody help me?
Many thanks

Editor (for both doc & sheet)

Features

Architecture

  • Migrate on IShortcutService @wzhudev
    • Implement IFocusService
    • Shortcut should check if it should be triggered before gets triggered
  • (later) Migrate on IClipboardService @wzhudev

什么时候有最新的发行版

用了lucksheet2.0感觉功能很好,就是没有导出,用了别人的导出的方法都不太好。在这里蹲一个最新的包

MVP Features

To the developers who will be responsible for implementing these features, please ensure that:

  • All related commands, mutations, operations, menu items, and models are thoroughly unit tested.
  • The undo-redo functionality is working correctly and without any issues.
  • All design requirements have been met in the implementation.
  • Your pull request (PR) is reviewed by another member of the team before merging.

Milestone 1 - Basic Sheet Features

To reach this milestone, we should diligently implement essential components and fundamental features, with the aim of providing a solid foundation to support future advancements and developments.

Deadline October 21th, 2023

Milestone 2 - Features II

Milestone 3 - Advanced Features & Facade

Cell editor (doc) enhancements

  • 中文输入
  • 回车换行
  • update更新输入
  • 上下快捷键支持
  • 排版文字太紧密
  • 鼠标点击空白处体验
  • 光标体验
  • doc重构
  • editor接入sheet
  • ime input bugfix
  • show scroll bar
  • shortcut
  • 网格调试
  • indent不生效
  • 排版问题优化:中英文间隔、
  • 快捷键
  • 复制粘贴
  • 范围选择器开发及优化(抽象及开发优化选择器)
  • 导入
  • editor样式编辑重构
  • editor最后一个段落不能被删除

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.