Files
univer/docs/readme/es-ES.md
T
2026-05-07 22:17:34 +08:00

20 KiB

Univer

Un SDK ofimático full-stack e isomórfico para crear hojas de cálculo, documentos y presentaciones.

Univer ayuda a crear experiencias de productividad integrables con una arquitectura de plugins, renderizado basado en Canvas, un motor de fórmulas y una Facade API que funciona tanto en el navegador como en Node.js.

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español

📖 Documentación | ✨ Showcase | 📘 API Reference | 📝 Blog

Release License Build CodeFactor Codecov

Stars Contributors Issues Last Commit

Discord Twitter Open Collective

Trendshift

✨ ¿Qué es Univer?

Univer es un SDK de código abierto para crear aplicaciones ofimáticas dentro de tu propio producto. Proporciona los bloques necesarios para experiencias de hojas de cálculo, documentos y presentaciones sin obligarte a usar una aplicación alojada ni una UI fija.

Usa Univer cuando necesites:

  • Integrar edición de hojas de cálculo o documentos en un SaaS, herramienta interna, flujo de BI o aplicación de IA.
  • Ejecutar procesamiento de libros/documentos en el servidor con la misma arquitectura que se usa en el navegador.
  • Componer solo las funciones que necesitas mediante plugins o empezar rápido con presets.
  • Extender el comportamiento mediante plugins personalizados, comandos, servicios, componentes de UI y Facade APIs.

Univer no es solo un visor de archivos de hojas de cálculo. Es un framework para crear tu propia superficie de productividad.

🌟 Highlights

⚡
Preparado para superficies grandes
El renderizado Canvas y un motor de fórmulas dedicado mantienen responsivos los libros complejos.
🧩
Extensible por plugins
Compón, reemplaza, carga bajo demanda o amplía capacidades sin adoptar todo el stack.
🤖
Headless para infraestructura de IA
Ejecuta lógica de libros y documentos en Node.js para impulsar agentes, automatización y flujos del servidor.
🛠️
SDK listo para producto
Adaptadores de framework, Facade APIs, presets y runtime headless encajan en integraciones reales.
🌗
Dark mode listo
Los componentes de UI y el motor de renderizado se adaptan a temas claros y oscuros.
🔌
Facade API unificada
Una API consistente para libros, rangos, fórmulas y documentos en el navegador y Node.js.

🚀 ¿Por qué Univer?

  • Diseño isomórfico: ejecuta aplicaciones UI en navegadores y procesamiento headless en Node.js.
  • Arquitectura basada en plugins: cada capacidad se entrega como un plugin componible, por lo que las funciones se pueden añadir, quitar, reemplazar o cargar bajo demanda.
  • Preset mode para integración rápida: usa bundles de plugins preparados desde univer-presets cuando quieras una aplicación funcional rápidamente.
  • Plugin mode para control total: compón paquetes manualmente cuando necesites carga personalizada, bundles más pequeños o integración profunda.
  • Facade API: trabaja con libros, hojas, rangos, documentos, fórmulas, comandos y eventos mediante una API de alto nivel.
  • Motor de renderizado Canvas: soporta superficies editables grandes y comparte la capa de renderizado entre distintos tipos de documento.
  • UI extensible: integración con React, Vue, Web Components y shells de aplicación específicos de cada framework.

⚡ Inicio rápido

Para la mayoría de las aplicaciones, empieza con Preset Mode. Usa Plugin Mode cuando necesites componer paquetes manualmente y controlar el registro de plugins.

Preset Mode (recomendado)

Los presets son colecciones curadas de plugins de Univer que incluyen los registros de Facade API y estilos necesarios.

pnpm add @univerjs/presets @univerjs/preset-sheets-core
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'
import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'
import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'

import '@univerjs/preset-sheets-core/lib/index.css'

const { univerAPI } = createUniver({
  locale: LocaleType.EN_US,
  locales: {
    [LocaleType.EN_US]: mergeLocales(UniverPresetSheetsCoreEnUS),
  },
  presets: [
    UniverSheetsCorePreset({
      container: 'app',
    }),
  ],
})

univerAPI.createWorkbook({})
Plugin Mode

Plugin Mode te da control de bajo nivel sobre paquetes, imports de estilos, combinación de locales, registro de Facade API y orden de plugins.

pnpm add @univerjs/core @univerjs/design @univerjs/docs @univerjs/docs-ui @univerjs/engine-formula @univerjs/engine-render @univerjs/sheets @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-ui @univerjs/sheets-ui @univerjs/ui
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'
import { FUniver } from '@univerjs/core/facade'
import DesignEnUS from '@univerjs/design/locale/en-US'
import { UniverDocsPlugin } from '@univerjs/docs'
import { UniverDocsUIPlugin } from '@univerjs/docs-ui'
import DocsUIEnUS from '@univerjs/docs-ui/locale/en-US'
import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula'
import { UniverRenderEnginePlugin } from '@univerjs/engine-render'
import { UniverSheetsPlugin } from '@univerjs/sheets'
import SheetsEnUS from '@univerjs/sheets/locale/en-US'
import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'
import { UniverSheetsFormulaUIPlugin } from '@univerjs/sheets-formula-ui'
import SheetsFormulaUIEnUS from '@univerjs/sheets-formula-ui/locale/en-US'
import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt'
import { UniverSheetsNumfmtUIPlugin } from '@univerjs/sheets-numfmt-ui'
import SheetsNumfmtUIEnUS from '@univerjs/sheets-numfmt-ui/locale/en-US'
import { UniverSheetsUIPlugin } from '@univerjs/sheets-ui'
import SheetsUIEnUS from '@univerjs/sheets-ui/locale/en-US'
import { UniverUIPlugin } from '@univerjs/ui'
import UIEnUS from '@univerjs/ui/locale/en-US'

import '@univerjs/design/lib/index.css'
import '@univerjs/ui/lib/index.css'
import '@univerjs/docs-ui/lib/index.css'
import '@univerjs/sheets-ui/lib/index.css'
import '@univerjs/sheets-formula-ui/lib/index.css'
import '@univerjs/sheets-numfmt-ui/lib/index.css'

import '@univerjs/engine-formula/facade'
import '@univerjs/ui/facade'
import '@univerjs/docs-ui/facade'
import '@univerjs/sheets/facade'
import '@univerjs/sheets-ui/facade'
import '@univerjs/sheets-formula/facade'
import '@univerjs/sheets-numfmt/facade'

const univer = new Univer({
  locale: LocaleType.EN_US,
  locales: {
    [LocaleType.EN_US]: mergeLocales(
      DesignEnUS,
      UIEnUS,
      DocsUIEnUS,
      SheetsEnUS,
      SheetsUIEnUS,
      SheetsFormulaUIEnUS,
      SheetsNumfmtUIEnUS,
    ),
  },
})

univer.registerPlugin(UniverRenderEnginePlugin)
univer.registerPlugin(UniverFormulaEnginePlugin)
univer.registerPlugin(UniverUIPlugin, { container: 'app' })
univer.registerPlugin(UniverDocsPlugin)
univer.registerPlugin(UniverDocsUIPlugin)
univer.registerPlugin(UniverSheetsPlugin)
univer.registerPlugin(UniverSheetsUIPlugin)
univer.registerPlugin(UniverSheetsFormulaPlugin)
univer.registerPlugin(UniverSheetsFormulaUIPlugin)
univer.registerPlugin(UniverSheetsNumfmtPlugin)
univer.registerPlugin(UniverSheetsNumfmtUIPlugin)

const univerAPI = FUniver.newAPI(univer)
univerAPI.createWorkbook({})

Tu página necesita un contenedor:

<div id="app" style="height: 100vh"></div>

Consulta más detalles en la guía de instalación y uso básico, la referencia de createUniver y la referencia de Facade API.

🧩 Preset Mode vs Plugin Mode

Opción Cuándo usarla Empieza aquí
Preset Mode Quieres una configuración funcional de Sheets, Docs o Node con mínima configuración. univer-presets y la guía de inicio
Plugin Mode Necesitas control estricto sobre paquetes, orden de registro de plugins, carga bajo demanda o composición personalizada en tiempo de ejecución. Los examples/ de este repositorio y la guía de arquitectura
Headless Mode Necesitas procesamiento de libros/documentos en servidor, cálculo de fórmulas o automatización sin UI. Headless Univer

Mantén todos los paquetes @univerjs/* en la misma versión. Si usas paquetes de Univer Pro, mantén también alineadas las versiones de @univerjs-pro/*.

🧭 Compatibilidad

  • Runtime de navegador: Univer se compila con objetivo Chrome 70 y busca funcionar en Edge >=70, Firefox >=63, Chrome >=70, Safari >=12.0 y Electron >=5.
  • Polyfills: Univer depende de Intl.Segmenter. Añade un polyfill como @formatjs/intl-segmenter si tu navegador o runtime objetivo no lo incluye.
  • Herramientas de build: Recomendamos Vite, esbuild o Webpack 5. Si tu herramienta no soporta el campo exports de package.json (común en Webpack 4), puede que necesites configurar mapeos de ruta adicionales.
  • React: La capa de vista de Univer está construida sobre React 18, soporta React 18 y 19, y ofrece compatibilidad mínima para React 16.9+ y 17.
  • Runtime Node.js: Headless Univer soporta Node.js >=18.17.0. Para desarrollar este monorepo se requiere Node.js >=22.18.

🛠️ Qué puedes construir

Área Capacidades open source
Sheets Libros, hojas, rangos, selección, fórmulas, formato numérico, filtros, ordenación, validación de datos, formato condicional, hipervínculos, comentarios, buscar y reemplazar, notas, tablas, integración de dibujo y plugins de UI extensibles.
Docs Modelo de documento enriquecido, UI de edición, listas, hipervínculos, integración de dibujo, comentarios, inserción rápida y arquitectura compartida de documentos.
Slides Modelo de datos de presentaciones y paquetes de UI en desarrollo activo.
Runtime Aplicaciones en navegador, uso headless en Node.js, patrones Web Worker/RPC, múltiples instancias y automatización orientada al servidor.
Integrations React, Vue, Web Components, plantillas de frameworks, temas, localización y plugins personalizados.

Sheets es actualmente la superficie de producto más madura. Docs y Slides comparten la arquitectura de Univer y siguen evolucionando dentro del mismo SDK.

🔓 Open Source y Pro

Este repositorio contiene el núcleo open source de Univer y plugins OSS de primera parte. Algunas funciones empresariales se desarrollan como paquetes de Univer Pro y requieren integración aparte.

Open source Univer Pro / comercial
SDK core, sistema de plugins, motor de renderizado, motor de fórmulas, Facade API, paquetes de Sheets/Docs/Slides, temas, i18n y muchos plugins de primera parte. Colaboración en tiempo real, importación/exportación, impresión, gráficos, tablas dinámicas, sparklines, fórmulas avanzadas, historial de edición, componentes de servidor Pro y gestión de licencias.

Las funciones Pro están documentadas en la guía de Univer Pro. Se separan aquí intencionalmente para que el alcance OSS sea claro.

🌐 Ecosistema

📦 Guía del repositorio

.
├── packages/      Paquetes core, motores, tipos de documento, plugins UI y plugins de funciones
├── examples/      Demos locales de navegador y Node.js usadas para desarrollo
├── common/        Herramientas internas compartidas, mock data, storybook y utilidades
├── e2e/           Pruebas Playwright y de comparación visual
├── tests/         Proyectos adicionales de pruebas de integración
└── docs/          Notas de arquitectura, imágenes y documentación local del repositorio

Los README de cada paquete están junto a sus paquetes dentro de packages/.

🧑‍💻 Desarrollo

Requisitos:

  • Node.js >=22.18
  • pnpm >=10
git clone https://github.com/dream-num/univer.git
cd univer
pnpm install
pnpm dev

Comandos útiles:

Comando Propósito
pnpm dev Inicia la aplicación local de ejemplos.
pnpm build Compila los paquetes del workspace, excluyendo paquetes internos de common.
pnpm test Ejecuta pruebas unitarias mediante Turbo.
pnpm typecheck Ejecuta comprobaciones TypeScript mediante Turbo.
pnpm lint Ejecuta ESLint.
pnpm test:e2e Ejecuta pruebas Playwright.
pnpm storybook:dev Inicia Storybook para desarrollo de componentes UI.

Lee CONTRIBUTING.md antes de abrir un pull request.

📝 Notas para contribuidores

Notas locales del repositorio que vale la pena leer antes de cambios profundos:

  • Building Isomorphic Univer: cómo separar lógica de navegador, Node.js, UI y plugins compartidos.
  • Contributing to Facade API: expectativas de diseño para FUniver, FWorkbook, FRange y clases Facade relacionadas.
  • Naming Convention: convenciones para archivos, carpetas, interfaces, plugins, comandos y tokens de inyección de dependencias.
  • Fixing Memory Leaks: patrones comunes de fugas de memoria y flujo de depuración para instancias Univer.
  • Architecture TLDRs: notas breves sobre motor de fórmulas, Web Worker, permisos, selección y comportamiento ref-range.

💬 Comunidad

Lee el Código de Conducta antes de participar.

🔒 Seguridad

Si crees haber encontrado un problema de seguridad, sigue la Política de Seguridad.

❤️ Patrocinadores

Univer cuenta con el apoyo de la comunidad y patrocinadores. Puedes apoyar el proyecto a través de Open Collective.

Sponsor 0 Sponsor 1 Sponsor 2 Sponsor 3 Sponsor 4 Sponsor 5 Sponsor 6

Backer 0 Backer 1 Backer 2 Backer 3 Backer 4 Backer 5 Backer 6

📄 Licencia

Copyright (c) 2021-present DreamNum Co., Ltd.

Publicado bajo la licencia Apache-2.0.