Pular para o conteúdo

Testei o Univer: uma planilha de verdade no seu app (e o que NÃO é grátis)

Ver no idioma original →

Autoria: Prompt Engineer 48 · Assistir no YouTube

Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.

Idioma original: inglês

Vídeo original: I Tested Univer: A Real Spreadsheet in Your App (and What’s NOT Free) · Canal: Prompt Engineer 48 · 15:40 · Assistir no YouTube

Tópicos: Agentes de IA, Automação de tarefas e workflows, Ferramentas de desenvolvimento com IA, Open source e ecossistemas de software

O vídeo testa o Univer, um SDK open source para incorporar planilhas em aplicativos, e mostra que é possível criar uma planilha funcional com poucas linhas de código. O apresentador verifica o cálculo no navegador e em modo headless, mede desempenho e tamanho do pacote e destaca limitações da versão gratuita, como a ausência de gráficos e importação e exportação de arquivos no SDK. Também demonstra o Univer CLI para criar, editar, verificar e exportar arquivos de escritório em um fluxo local com revisão humana. A conclusão é que a ferramenta merece atenção, desde que se compreenda a divisão entre os recursos open source e os comerciais.

  • O Univer oferece modos preset, plug-in e headless para diferentes formas de integração.
  • Uma planilha funcional pode ser criada com cerca de 20 linhas de código e fórmulas que atualizam os totais.
  • A facade API permite editar a planilha tanto no navegador quanto no Node.js.
  • Na versão gratuita do SDK, recursos como gráficos, tabelas dinâmicas e importação e exportação de Excel são Pro.
  • O cálculo headless é assíncrono: é necessário esperar a conclusão antes de ler os valores.
  • No teste, o cálculo de 100 mil fórmulas levou cerca de 11 a 13 segundos e usou aproximadamente 1.500 MB de memória.
  • O Univer CLI permite editar arquivos em uma cópia isolada, inspecionar os dados, conferir uma captura de tela e mesclar as alterações.
  • O CLI exportou arquivos Excel e PowerPoint localmente, mas isso não significa que os recursos Pro possam ser distribuídos gratuitamente em um produto.
  • O pacote do preset pode ser pesado; o apresentador recomenda carregamento tardio ou plug-in mode quando o tamanho importa.
  • O Univer MCP server não foi testado e, segundo a documentação citada, requer uma API key e está em estágio inicial.
Início Capítulo Resumo
00:00 O que é o Univer e como começar O vídeo apresenta o SDK, seus modos de execução e a criação de uma planilha funcional com o preset.
04:12 Limitações da versão gratuita e cálculo headless O apresentador verifica quais recursos são Pro e testa cálculos, desempenho e tamanho do pacote.
07:20 Fluxo de edição com o Univer CLI Uma planilha é criada e editada em um work tree, inspecionada, mesclada e exportada para Excel.
10:29 Importação, slides e ecossistema O vídeo testa a importação de Excel, demonstra a criação de um slide e comenta skills, MCP e Workspace.
12:34 Recursos Pro, prós e contras O apresentador compara os recursos open source e Pro e resume os benefícios, limitações e casos de uso.

Você pode colocar uma planilha completa dentro do seu próprio app com cerca de 20 linhas de código. — 00:00

A mesma lógica que você escreve uma vez pode funcionar nos dois lugares. — 03:42

execute executa JavaScript confiável. Não é um sandbox. — 09:24

Leia os termos da licença antes de desenvolver com isso. — 13:37

As bases parecem muito boas, e a divisão entre gratuito e pago é o que você precisa entender antes de começar. — 15:10

  • Univer (ferramenta): SDK open source para incorporar recursos de planilhas e outros documentos de escritório em aplicativos.
  • Univer CLI (ferramenta): CLI demonstrada para criar, editar, inspecionar e exportar arquivos de escritório em um fluxo de trabalho local.
  • Univer Pro (ferramenta): Produto comercial que inclui recursos como gráficos, tabelas dinâmicas e colaboração em tempo real.
  • Univer MCP server (ferramenta): Servidor MCP do ecossistema Univer que, segundo a documentação mencionada, exige uma API key e está em estágio inicial.
  • facade API (conceito): Interface usada para acessar workbooks, planilhas e intervalos e realizar operações como definir valores, fórmulas e estilos.
  • headless mode (conceito): Modo que executa o mecanismo de planilhas em Node.js sem interface gráfica.
  • work tree (conceito): Rascunho isolado em que alterações podem ser feitas e verificadas antes de serem mescladas ao arquivo principal.
  • dream-num/univer (repo): Repositório do Univer mencionado ao final do vídeo.
  • Univer Workspace (ferramenta): Workspace self-hosted e open source apresentado como parte do ecossistema do Univer.

00:00 Certo, neste vídeo vamos conhecer o Univer, um toolkit open source que permite colocar uma planilha completa dentro do seu próprio app com cerca de 20 linhas de código. E você pode ver que as fórmulas funcionam, os totais são atualizados e eu até consigo escrever na planilha por código enquanto ela está em execução. Vale lembrar que testei tudo isso no meu próprio laptop, sem usar a nuvem. Vamos ver o que é real e o que não é. Então, o que é o Univer? É um SDK escrito em TypeScript, com licença Apache 2.0. E a proposta na página do repo

00:30 neste momento é ser o harness de escritório para agents de IA. Ele oferece planilhas, documentos, apresentações, quadros, tabelas relacionais e PDF em um único ambiente de execução. A ideia é não mandar seus usuários para o Excel ou o Google Sheets. Você incorpora o editor ao seu próprio produto e o controla por código. Para trazer isso para a realidade, aqui estão os números da página do repo quando gravei este vídeo: mais de 22.000 estrelas, cerca de 1.900 forks, mais de 5.800 commits, 150 tags e a versão mais recente

01:01 1.0.3 foi lançada dois dias antes de eu gravar. O último commit no branch principal tinha cerca de uma hora, então o projeto está bem ativo e avançando rápido. Vou buscar alguns números atualizados diretamente da API do GitHub, para você não precisar confiar apenas na minha captura de tela. O repo principal tem 60 pacotes na pasta packages, e a pasta presets tem mais 17. Você pode ver os nomes passando: sheets, docs, formula engine, render engine, formatação condicional, validação de dados, localizar e substituir, temas e um adaptador de visualização. Então, não se trata de uma única biblioteca.

01:33 É uma família inteira de pequenos plugins. E é por isso que existe o modo de plugins. A última linha confirma o restante: cerca de 22.000 estrelas, 1.869 forks, Apache 2.0 e uma atualização no dia em que gravei. Há três maneiras de executá-lo, e isso importa para decidir como começar. O modo predefinido é um conjunto selecionado de plugins, então você obtém uma planilha funcional com quase nenhuma configuração. O modo de plugins dá controle total sobre cada pacote, que é o que você quer para criar conjuntos personalizados e fazer carregamento sob demanda. E o modo headless executa o mesmo mecanismo no Node.js, sem tela nenhuma, que é como você permitiria que um agent de IA ou um processo de backend processasse uma pasta de trabalho.

02:06 Vamos testar os três modos. Vamos começar pelo modo predefinido. Criei um projeto novo e vazio e executei apenas um comando de instalação: dois pacotes, o pacote presets e o sheets core preset. E você pode ver que o PNPM resolveu 122 pacotes no total, tudo concluído em cerca de cinco segundos. E a versão é 1.0.3. Essa é toda a história das dependências para ter uma planilha funcional. E vale lembrar: este é o terminal de verdade, não uma animação. E este é o arquivo principal inteiro. Você

02:38 importa o sheets core preset, o local, e cria o Univer. Você informa em qual contêiner renderizar e chama create workbook. Depois, com a planilha em mãos, escrevo uma pequena tabela com set values e uma linha de totais com set formulas. É só isso. Não há nenhuma outra configuração. E este é o arquivo de verdade que executei. E aqui está ele em execução no navegador. Você pode ver uma planilha de verdade, com uma faixa de opções, uma barra de fórmulas, abas de planilhas e a grade. A linha de totais mostra 470, 515 e 565, que é exatamente o que

03:10 as fórmulas deveriam calcular. Agora vou clicar em uma célula e digitar uma fórmula nova: igual a B6 - B2. E o resultado é 350: 470 - 120, correto. Depois, altero o valor do Norte no primeiro trimestre para 500, e o total se atualiza sozinho, de 470 para 850. E agora observe a coluna à direita. É o código escrevendo na planilha ativa usando a API facade enquanto o app está em execução. Muito legal. Essa API facade é a parte de que mais gosto. Em vez de mexer nos

03:42 comandos internos, você tem um único objeto simples de usar. Você acessa uma pasta de trabalho, uma planilha, um intervalo e chama métodos como set values, set formulas, set bold e set background. As mesmas chamadas funcionam no navegador e no Node. Assim, a lógica que você escreve uma vez pode ser executada nos dois lugares. Isso é muito importante se você quer que um agent edite a mesma planilha que o usuário está vendo. Agora, vou ser sincero sobre como é a versão gratuita. Se você olhar para a faixa de opções aqui, só tenho três abas: Início, Fórmulas e

04:12 Exibição. Não há aba Inserir nem botão de gráfico. E isso não é um bug. De acordo com a própria tabela do repo, gráficos, tabelas dinâmicas, importação e exportação de arquivos do Excel, colaboração em tempo real, impressão e mais alguns recursos fazem parte do Univer Pro, que é um produto comercial separado. Então, a versão open source é um editor e mecanismo de cálculo muito bons, mas não é um clone gratuito do Excel. E não quero que você simplesmente acredite no que diz a tabela. Por isso, verifiquei a própria API. Criei a mesma pasta de trabalho headless e listei todos os

04:43 métodos da planilha e da pasta de trabalho: 117 métodos na planilha e 57 na pasta de trabalho. E, quando procuro por chart, pivot ou sparkline, a lista fica vazia. O mesmo acontece com export, print e import na pasta de trabalho. Mas set values e set formulas estão lá. Então, isso confirma o que diz o README: esses recursos simplesmente não estão nos pacotes gratuitos. Certo. Agora, o modo headless, porque é aqui que as coisas ficam interessantes para trabalhar com IA. Este é um script simples do Node. Não há navegador, DOM nem window. Eu crio

05:13 o Univer com o preset para Node. Construo uma pasta de trabalho, coloco alguns preços de hardware em uma coluna e adiciono uma fórmula de soma e outra de média. Agora, vou mostrar um problema real. Na primeira execução, ambos os valores foram exibidos como null. O mecanismo de fórmulas calcula de forma assíncrona. Então, se você ler a célula imediatamente, ainda não haverá nada ali. Até tentei usar o helper de cálculo, mas ele também retornou cedo demais. No fim, apenas esperei um momento antes de ler; e você pode ver que, na segunda execução, a soma é 10.009 e a média é 3.336,33

05:47 — correto, sem envolver um navegador. Se você criar um agent com isso, espere o cálculo terminar antes de confiar em um valor. Então, a seguir: quão rápido é? Escrevi um benchmark que preenche 100.000 linhas com três colunas, o que levou cerca de um segundo e meio. Depois, adicionei 100.000 fórmulas, cada uma multiplicando duas células, e o mecanismo concluiu todas em cerca de 12,9 segundos nesta gravação e 11,3 na minha primeira execução. Conferi a última linha com a resposta correta, e o resultado bateu. Uma soma de todas as 100.000

06:18 células levou cerca de seis segundos e resultou em 1,25 bilhão. Vale lembrar que o processo usou cerca de 1.500 MB de memória. Então, não é pouco, mas é bastante utilizável para cálculos de planilha no servidor. Agora, o outro lado do desempenho: o tamanho do que você distribui. Fiz um build de produção, e a pasta de saída ficou com 11 megabytes, com o arquivo JavaScript principal ocupando 6,6 MB, o que dá cerca de 1,7 megabyte compactado com gzip. A maior parte do restante são arquivos de idioma. Você pode ver que cada um tem algumas centenas de kilobytes. Então

06:49 se o tamanho da página for importante para você, planeje carregar isso sob demanda ou use o modo de plugins e inclua apenas as partes de que precisa. Essa é uma desvantagem real da abordagem com presets. Alguns requisitos para ter em mente: ele é compatível com Chrome 88 ou posterior, Edge, Firefox 90 e Safari 14.1, que são as versões mínimas indicadas. Ele precisa do recurso Intl.Segmenter. Então, navegadores mais antigos precisam de um polyfill. A camada de visualização usa React e oferece suporte ao React 18 e 19. O modo headless precisa do Node 18.17 ou posterior. Mas, se você quiser

07:20 desenvolver no próprio repo, precisa do Node 22.18. Então, nada de extraordinário, mas leia esta lista antes de prometer isso a um cliente. Agora, a área em que o Univer está investindo mais neste momento: agents. A ideia é que um agent de IA trabalhe com arquivos de escritório da mesma forma que trabalha com código. Ele faz as alterações em uma cópia isolada, verifica o resultado e, depois, uma pessoa revisa e decide se incorpora as mudanças ou descarta tudo. A ferramenta para isso é a CLI do Univer. Então, vamos instalá-la e usá-la exatamente como um agent faria. Primeiro problema — e quero

07:51 para ser justo. A CLI exige Node 24 ou mais recente, e minha máquina tinha o Node 22. Então instalei o Node 24 na pasta do projeto, junto com a CLI do npm, e obtive a versão 0.4.4. Depois, executei doctor e, na primeira vez, apareceu uma mensagem dizendo que havia incompatibilidade de versão do daemon. Esse daemon tinha sobrado de uma instalação anterior minha em outra pasta. A mensagem informa como corrigir. Então executei daemon stop, rodei doctor de novo e agora ele diz que está pronto, além de ter encontrado o Chrome para as capturas de tela. Então, funciona. Mas você pode

08:23 ver que um daemon compartilhado em segundo plano pode atrapalhar quando você tem duas instalações. A lista de comandos é uma boa maneira de ver como foi projetado. Você tem new e import para criar um arquivo ou trazer arquivos do Excel, Word e PowerPoint. Há comandos de árvore de trabalho para adicionar, marcar como pronto, mesclar ou descartar um rascunho. Inspect lê os dados. Execute executa código da facade. Screenshot renderiza como a unidade realmente fica, e export devolve arquivos do Office de verdade. Tudo fica em um único arquivo Univer, que é um

08:53 banco de dados SQLite no seu próprio disco. Então vamos fazer isso como um agent. Crio um novo arquivo chamado agent.univer. Depois, abro uma árvore de trabalho, que é o rascunho isolado, e você pode ver que ela retorna um ID. Verifico o status e observo o arquivo principal. O trunk tem zero unidades. Então adiciono à árvore de trabalho uma unidade de planilha chamada budget, e nada foi alterado no arquivo real ainda. Agora, a edição. Escrevi um pequeno script que preenche uma lista de peças com quantidade e preço. Adiciona uma coluna de total com fórmulas, um total geral e formata a linha do cabeçalho em azul-escuro

09:24 . E executo o script com o comando execute na árvore de trabalho. Você pode ver que ele foi registrado. Então, agora o rascunho tem um segundo commit. Vale dizer uma coisa: a documentação deixa claro que execute executa JavaScript confiável. Não é um sandbox. Portanto, execute apenas código em que você confia. E esta é a etapa de verificação, que, na minha opinião, é a parte mais inteligente. O agent não confia apenas em si mesmo. Ele lê os dados de volta com inspect. E você pode ver que a célula D6 contém o valor 145, com a fórmula ainda vinculada. Fiz essa conta à mão: 799 + 120 + 90 + 36, e o resultado confere. Depois,

09:58 ele faz uma captura de tela da planilha renderizada de verdade para poder ver a cor do cabeçalho, os totais, tudo o que o usuário veria. Quando a verificação é aprovada, o agent marca a árvore de trabalho como pronta, e uma pessoa faz o merge. Fiz isso, e você pode ver que ela foi mesclada no trunk. Depois, exportei a planilha e obtive um arquivo Excel de verdade, com 6,95 bytes, cerca de 7 kilobytes. Então, o processo vai de uma edição feita por IA para um rascunho revisável e, depois, para um arquivo que você pode abrir no Excel, e tudo foi executado localmente. Sem conta, sem chave de API. Gostei muito desse fluxo. Agora deixe-me

10:29 testar a ida e volta, porque uma exportação só é útil se o arquivo voltar corretamente. Peguei o mesmo arquivo Excel que acabei de exportar e o importei para um arquivo Univer totalmente novo. Li a célula D6, e o valor continua sendo 145; a fórmula SUM de D2 a D5 sobreviveu. Um pequeno detalhe: o valor voltou como o texto 45, mas com tipo numérico. Portanto, fique de olho nisso se comparar valores de forma estrita no código. E não se limita a planilhas. Pedi que ele criasse um slide. A maneira recomendada é desenhar

11:00 um SVG que corresponda ao tamanho da página e compilá-lo em formas editáveis de verdade. Criei um slide de título escuro com dois cartões de estatísticas, apliquei-o e a verificação de lint não encontrou problemas. Você pode ver o resultado aqui, e exportei-o como um arquivo PowerPoint de cerca de 13 kilobytes. Vale lembrar que este é um slide simples, então eu não o chamaria de ferramenta completa de criação de apresentações, mas ele prova que o fluxo também funciona para slides. Mais um detalhe: a CLI vem com sua própria versão de skills, compatível com a instalação. Quando listei as skills, obtive

11:32 core, doc, sheet, slide, baseboard, embed e crossunit formula. E também há uma referência offline da API. Pesquisei set formulas e ela encontrou o método exato, com sua assinatura; pedi o método de borda e recebi os tipos e as opções. Assim, um agent pode consultar a API real da versão instalada, em vez de adivinhar com base em dados antigos de treinamento. É uma decisão de design inteligente. Agora, também existe um servidor MCP do Univer, e preciso ser transparente: não o testei. O readme diz que primeiro você precisa de uma chave de API do console do Univer

12:04 e também precisa iniciar uma instância do Univer, seja no playground deles ou com um kit inicial. Ele também exige um modelo multimodal, e o projeto se descreve como estando em estágio inicial. Não crio contas para demonstrações, então vou deixar para você experimentar. Se fizer isso, me conte como foi. E o ecossistema ao redor está crescendo. Há o Univer Workspace, um workspace open source e auto-hospedado onde pessoas e agents criam e revisam conteúdo do Office. Há plugins para OpenClaw, Deepseek e Workbuddy, além de um repo de skills para agents. Não instalei o

12:34 Workspace, então não posso dizer como funciona, mas é uma boa referência para entender como criar um produto completo sobre o SDK. Então, vamos falar da divisão entre open source e Pro, porque isso determina se ele é adequado para você. No repo gratuito, você tem o core, o sistema de plugins, o mecanismo de renderização, o mecanismo de fórmulas, a API facade e o runtime headless do Node. Para planilhas, isso significa editar fórmulas, formatos numéricos, filtros, classificação, validação, formatação condicional, tabelas e comentários. O Pro

13:06 adiciona colaboração, histórico de edição, importação e exportação, impressão, gráficos, tabelas dinâmicas, minigráficos e cálculo no lado do servidor para documentos e slides. Muitos dos acabamentos também fazem parte do Pro. Há uma particularidade interessante. A CLI em si é Apache 2.0 e exportou arquivos Excel e PowerPoint para mim gratuitamente. Mas o readme explica que ela inclui uma licença de desenvolvimento local para o runtime Pro, que é renovada a cada 90 dias, e que os pacotes do SDK Pro e os bindings nativos têm seus próprios termos. Então, a

13:37 CLI é ótima para trabalho local no estilo de agents, mas isso não significa que você pode incluir esses recursos Pro no seu próprio produto gratuitamente. Leia os termos da licença antes de usá-la como base. Então, aqui estão os pontos positivos com base no que realmente vi. Primeiro, foram necessárias cerca de 20 linhas e uma instalação para ter uma planilha funcional com fórmulas de verdade. Segundo, a API facade é limpa e igual no navegador e no Node. Terceiro, o cálculo headless estava correto: 100.000 fórmulas em cerca de 11 a 13 segundos no meu laptop. Quarto, o fluxo de

14:08 árvore de trabalho — rascunho, verificação, revisão e merge — é exatamente como os agents deveriam lidar com arquivos importantes. Quinto, a CLI exporta arquivos Excel e PowerPoint de verdade, sem chave. E sexto, o projeto está claramente ativo, com um lançamento de dois dias atrás e commits feitos há menos de uma hora. E agora, os pontos negativos. Também com base no que vi: primeiro, a versão gratuita não tem gráficos, tabelas dinâmicas nem importação e exportação do Excel no SDK. Esses recursos são Pro. Segundo, o pacote é pesado: 6,6 megabytes de JavaScript principal antes da

14:39 compressão gzip. Terceiro, os valores headless retornam null se você fizer a leitura antes de o mecanismo terminar. Quarto, a CLI exige Node 24. O registro do npm listava uma versão mais recente do que a que obtive, e um daemon que sobrou de outra instalação me bloqueou até que eu o parasse. Quinto, o servidor MCP exige uma chave de API e está em estágio inicial, então não pude verificá-lo. E sexto, o uso de memória de cerca de 1.500 megabytes em uma planilha grande é algo para se observar em um servidor pequeno. Então, para quem ele serve? Se você está criando um produto que precisa de uma

15:10 planilha de verdade dentro dele e está satisfeito com o conjunto de recursos open source ou disposto a conversar com eles sobre o Pro, então sim, vale a pena analisá-lo com atenção. Se você está criando workflows de agents que precisam criar e verificar arquivos Excel e PowerPoint, a CLI é a parte que eu experimentaria primeiro nesta semana. E, se você só quer gráficos e tabelas dinâmicas gratuitos no seu próprio app, então não: leia primeiro a tabela do Pro. Minha opinião sincera é que os fundamentos parecem muito bons, e você precisa entender a divisão entre o gratuito e o pago antes de começar. Então, neste

15:40 No vídeo, vimos como colocar uma planilha em um app com 20 linhas de código, como executar o mesmo mecanismo sem interface gráfica no Node e como um agent pode editar, verificar e exportar arquivos do Office com a CLI do Univer. Se você tiver interesse, pode experimentar isso no seu próprio sistema e me contar como foi, especialmente se testar o servidor MCP. O repo é dream-nam/univer. Até o próximo vídeo. Confira o próximo vídeo.

Transcrição original

[00:00] All right, in this video we are going to look at Univer, an open- source toolkit that lets you put a full spreadsheet inside your own app with about 20 lines of code. And you can see that the formulas work, the totals update, and I can even write into the sheet from code while it’s running. Now, mind you, I tested all of this on my own laptop, no cloud. Let’s go ahead and see what’s real and what’s not. So, what is Univer? It’s an Apache 2.0 O license SDK written in Typescript. And the pitch on the repo

[00:30] page right now is the office harness for AI agents. It gives you spreadsheets, documents, slides, canvases, relational tables, and PDF in one runtime. The idea is you don’t send your users to Excel or Google Sheets. You embed the editor in your own product and you control it with code just to ground this in reality. Here are the numbers from the repo page when I recorded this. over 22,000 stars, about 1,900 forks, over 5,800 commits, 150 tags, and the latest release version

[01:01] 1.0.3 went out 2 days before I recorded. The last commit on the main branch was about an hour old, so this is very much alive and moving fast. Let me pull a few live numbers straight from the GitHub API, so you don’t just have to trust my screenshot. The main repo has 60 packages in its packages folder, and the presets folder has 17 more. You can see the names scroll by sheets, docs, formula engine, render engine, conditional formatting, data validation, find and replace, themes, and a view adapter. So, this is not one library.

[01:33] It’s a whole family of small plugins. And that is why plug-in mode exists. And the last line confirms the rest about 22,000 stars. 1869 forks, Apache 2.0, and a push from the day I recorded. Now, there are three ways to run it, and this matters for how you start. Preset mode is a curated bundle of plugins, so you get a working sheet with almost no setup. Plug-in mode gives you full control over every package, which is what you want for custom bundles and lazy loading. And headless mode runs the same engine in Node.js with no screen at

[02:06] all, which is how you would let an AI agent or a back-end job crunch. A workbook. We are going to test all three. Let’s start with preset mode. I made a fresh empty project and I ran just one install command. Two packages. the presets package and the sheets core preset. And you can see PNPM resolved 122 packages in all finished in about 5 seconds. And the version is 1.0.3. That’s the whole dependency story for a working spreadsheet. And mind you, this is the real terminal, not an animation. And this is the entire main file. You

[02:38] import the sheets core preset, the local, and create univer. You tell it which container to render into, and you call create workbook. Then with the sheet in hand, I write a small table with set values and a total row with set formulas. That’s it. There is no other setup. And this is the real file that I ran. And here it is running in the browser. You can see a real spreadsheet with a ribbon, a formula bar, sheet tabs, and the grid. The totals row says 470, 515, and 565, which is exactly what

[03:10] the formulas should give. Now I’ll click a cell and type a new formula myself equals B6 - B2 and it gives 350 470 - 120 correct. Then I change the north Q1 number to 500 and the total updates by itself from 470 to 850. And now watch the column on the right. That is code writing into the live sheet using the facade API while the app is running. Really nice. That facade API is the part I like most. Instead of poking at

[03:42] internal commands, you get one friendly object. You grab a workbook, a worksheet, a range, and you call methods like set values, set formulas, set bold, set background. The same calls work in the browser and in node. So the logic you write once can run in both places. That is a really big deal if you want an agent to edit the same sheet your user is looking at. Now, let me be honest about what the free version looks like. If you look at the ribbon here, I only have three tabs. Start formulas and

[04:12] view. There is no insert tab and no chart button. And that is not a bug. Per the repo’s own table, charts, pivot tables, import and export of Excel files, real-time collaboration, printing, and a few more are part of Univor Pro, which is a separate commercial product. So, the open- source build is a very good editor and calculation engine, but it’s not a free Excel clone. And I don’t want you to just take the table’s word for it. So, I checked the API itself. I made the same headless workbook and listed every

[04:43] method on the worksheet and on the workbook 117 methods on the worksheet 57 on the workbook and when I search for chart pivot or spark line the list is empty. Same for export print and import on the workbook but set values and set formulas are right there. So that matches the readme those features are simply not in the free packages. Okay. Now headless mode because this is where it gets interesting for AI work. This is a plain node script. There is no browser, no doom, no window. I create

[05:13] universe with the node preset. Build a workbook, put a few hardware prices in a column, and add a sum and an average formula. Now, let me show you a real gotcha. I hit my first run printed null for both values. The formula engine calculate asynchronously. So, if you read the cell right away, there is nothing there yet. I even tried the calculation and helper and it still came back too early. So in the end I just waited a moment before reading and you can see the second run the sum is 1,09 and the average is 3 336.33

[05:47] correct with no browser involved. If you build an agent on this wait for the calculation to finish before you trust a value. So next how fast is it? I wrote a benchmark that fills 100,000 rows with three columns which took about 1 and 1/2 seconds. Then I added a 100,000 formulas, each one multiplying two cells, and the engine finished all of them in about 12.9 seconds in this take, and 11.3 in my first run. I checked the last row against the right answer, and it matched a sum across all 100,000

[06:18] cells, took about 6 seconds, and gave 1.25 billion. Now, mind you, the process used about 1,500 MGB of memory. So, this is not tiny, but for serverside spreadsheet math, that’s pretty usable. Now the other side of performance, the size of what you ship. I ran a production build and the output folder came to 11 megabytes with the main JavaScript file at 6.6 MGB which is about 1.7 megabytes gzipped. Most of the rest are language files. You can see each one is a few hundred kilobytes. So

[06:49] if page weight matters to you, plan to lazy load this or use plug-in mode and take only the pieces you need. That is a real con of the preset approach. A few requirements to keep in mind. It targets Chrome 88 and newer with Edge, Firefox 90, and Safari 14.1 as the stated minimums. It needs the Intel. Segment feature. So, older browsers need a polyfill. The view layer is React and it supports React 18 and 19. Headless needs node 18.17 or newer. But if you want to

[07:20] develop on the repo itself, you need node 22.18. So, nothing exotic, but read this list before you promise it to a client. Now the part that Univer is pushing hardest right now and that is agents. The idea is that an AI agent should work on office files the same way it works on code. It makes its edits in an isolated copy. It checks the result and then a human reviews and decides to merge or throw it away. The tool for that is the universe CLI. So let’s install it and use it exactly as an agent would. First problem and I want to

[07:51] be fair about it. The CLI wants node 24 or newer and my machine had node 22. So I installed node 24 into the project folder together with the CLI from npm and I got version 0.4.4. Then I ran doctor and the first time it said blocked a demon build mismatch. That demon was left over from an earlier install of mine in another folder. The message tells you the fix. So, I ran demon stop, ran doctor again, and now it says ready, and it found Chrome for the screenshots. So, it works. But you can

[08:23] see that a shared background demon can trip you up when you have two installs. The command list is a nice way to see how it’s designed. You have new and import to create a file or bring in Excel, Word, and PowerPoint files. You have work tree commands to add, mark, ready, merge, or discard a draft. Inspect reads data. Execute runs facade code. Screenshot renders what the unit really looks like and export gives you back real office files. All of it lives in one single universe file which is a

[08:53] SQLite database on your own disk. So let’s do it like an agent. I create a new file called agent.univer. Then I open a work tree which is the isolated draft and you can see it gives back an ID. I check the status and notice the main file. The trunk has zero units. Then I add a sheet unit called budget to the work tree and nothing has touched the real thing yet. Now the edit. I wrote a small script that fills in a parts list with quantity and price. Adds a total column with formulas, a grand total, and styles the header row in dark

[09:24] blue. And I run it with the execute command against the work tree. You can see it committed. So the draft now has a second commit. One thing worth saying, the doc state clearly that execute runs trusted JavaScript. It is not a sandbox. So only run code you trust. And this is the verify step which I think is the smartest part. The agent doesn’t just trust itself. It reads the data back with inspect. And you can see cell D6 holds the value 145 with the formula still attached. I did that math by hand. 799 + 120 + 90 + 36 and it matches. Then

[09:58] it takes a screenshot of the actual rendered sheet so it can see the header color, the totals, everything the user would see. Once the check passes, the agent marks the work tree ready and a human merges it. I did that and you can see it merged into trunk. Then I exported the sheet and I got a real Excel file of 6,95 bytes about 7 kilobytes. So it goes from an AI edit to a review draft to a file you can open in Excel and the whole thing ran locally. No account, no API key. I like this flow a lot. Now let me

[10:29] test the round trip because an export is only useful if it comes back correctly. I took that same Excel file I just exported and imported it into a brand new universe file. I read cell D6 and the value is still 145 and the formula sum of D2 to D5 survived. One small detail, the value came back as the text45 but with a number type. So keep an eye on that if you compare values strictly in code. It doesn’t stop at spreadsheets. I asked it to build a slide. The recommended way is to draw

[11:00] one SVG that matches the page size and compile it into real editable shapes. I wrote a dark title slide with two stat cards, applied it, and the lint check came back with no problems. You can see the result here and I exported it as a PowerPoint file about 13 kilobytes. Mind you, this is a simple slide, so I wouldn’t call it a full presentation designer, but it proves the loop works for slides, too. One more detail, the CLI ships its own skills version matched to the install. When I listed them, I

[11:32] got core, doc, sheet, slide, baseboard, embed, and crossunit formula. And there is an offline API reference too. I searched for set formulas and it found the exact method with its signature and I asked for the border method and got the types and the options. So an agent can look up the real API for the installed version instead of guessing from old training data. That’s a smart design. Now, there’s also a Univer MCP server, and I have to be upfront here. I did not test it. The readme says you first need an API key from the Universe

[12:04] console, and you also need to launch a Universe instance, either in their playground or with a start kit. It also asks for a multimodal model, and the project calls itself early stage. I don’t create accounts for demos, so I’m leaving it for you to try. If you do, let me know how it goes. And the ecosystem around it is growing. There’s Univer Workspace, an open-source self-hosted workspace where people and agents create and review Office content. There are plugins for OpenClaw, Deepseek, and Workbuddy, and a skills repo for agents. I did not install

[12:34] Workspace, so I can’t tell you how it runs, but as a reference on how to build a full product on top of the SDK, it’s a good thing to read. So, let’s talk about the open-source versus proslit because this decides whether it’s right for you. In the free repo, you get the core, the plug-in system, the render engine, the formula engine, the facade API, and the node headless runtime. For sheets, that means editing formulas, number formats, filter, sort, validation, conditional formatting, tables, and comments. Pro

[13:06] adds collaboration, edit history, import and export, printing charts, pivot tables, spark lines, and serverside calculation for docs and slides. A lot of the polish is pro as well. There is one interesting twist. The CLI itself is Apache 2.0 and it exported Excel and PowerPoint files for me for free. But the readme explains that it bundles a local host development license for the Pro runtime which rotates every 90 days and that pro SDK packages and native bindings keep their own terms. So the

[13:37] CLI is great for local agent style work, but that doesn’t mean you can ship those pro features inside your own product for free. Read the license terms before you build on it. So, here are the pros from what I actually saw. One, it took about 20 lines and one install to get a working spreadsheet with real formulas. Two, the facade API is clean and it’s the same in the browser and in Node. Three, headless calculation was correct. 100,000 formulas in about 11 to 13 seconds on my laptop. Four, the work

[14:08] tree flow of draft, verify, review, merge is exactly how agents should touch important files. Five, the CLI exports real Excel and PowerPoint files with no key. And six, the project is clearly active with a release 2 days old and commits within the hour. And now the cons. Also, from what I saw, one, the free build doesn’t have charts, pivots, or Excel import and export in the SDK. Those are pro. Two, the bundle is heavy. 6.6 mgabytes of main JavaScript before

[14:39] gzip. Three, headless values come back null if you read before the engine finishes. Four, the CLI needs node 24. The npm registry listed a newer version than the one I got, and a leftover demon from another install blocked me until I stopped it. Five, the MCP server needs an API key and is early stage, so I couldn’t verify it. And six, the memory use of about 1500 megabytes on a big sheet is something to watch on a small server. So, who is it for? If you are building a product that needs a real

[15:10] spreadsheet inside it and you are fine with the open- source feature set or you’re willing to talk to them about Pro, then yes, it’s worth a serious look. If you’re building agent workflows that need to create and verify Excel and PowerPoint files, then the CLI is the part I would try first this week. And if you just want free charts and pivots in your own app, then no, read the Pro Table first. My honest take is the foundations look really good and the free and paid line is the thing you must understand before you start. So in this

[15:40] video we have seen how to put a spreadsheet in an app with 20 lines of code, how to run the same engine headless in note and how an agent can edit, verify and export office files with the universe CLI. If you’re interested, you can go ahead and try this out on your own system and let me know how it goes, especially if you test the MCP server. The repo is dream-nam/univer. I’ll see you in another one. Check out the next video.