OpenSource-Hub

univer

프레임워크

dream-num/univer

오픈 소스 오피스 SDK로, 스프레드시트, 문서, 슬라이드 및 AI 에이전트 통합을 지원합니다.

개요

Univer는 오픈 소스 오피스 SDK로, 스프레드시트, 문서, 슬라이드 등의 기능을 제공합니다. 플러그인 아키텍처를 채택하고 있으며 Canvas 렌더링 엔진과 수식 엔진을 내장하고 있습니다. 통합된 Facade API는 브라우저와 Node.js에서 모두 실행할 수 있어 제품에 임베딩하거나 AI 에이전트에 헤드리스 문서 처리를 제공하는 데 적합합니다.

README 미리보기

\n\n\n\n**The Office Harness for AI Agents**\n\nSpreadsheets · Documents · Presentations · Bases · Boards · PDFs (coming soon)\n\nHigh-performance, fully customizable Office SDK\n\nBuild embeddable productivity experiences with a plugin architecture, Canvas-based rendering,\na formula engine, and one Facade API that works in the browser and on Node.js.\n\nEnglish | [简体中文](./docs/readme/zh-CN.md) | [繁體中文](./docs/readme/zh-TW.md) | [日本語](./docs/readme/ja-JP.md) | [한국어](./docs/readme/ko-KR.md) | [Español](./docs/readme/es-ES.md)\n\n[🌐 Website](https://univer.ai/) | [📖 Documentation](https://docs.univer.ai) | [✨ Showcase](https://docs.univer.ai/showcase) | [📘 API Reference](https://docs.univer.ai/reference/classes/univer) | [📝 Blog](https://docs.univer.ai/blog)\n\n[](https://github.com/dream-num/univer/releases)\n[](./LICENSE)\n[](https://github.com/dream-num/univer/actions/workflows/build-packages.yml)\n[](https://www.codefactor.io/repository/github/dream-num/univer/overview/dev)\n[](https://codecov.io/gh/dream-num/univer)\n\n[](https://github.com/dream-num/univer/stargazers)\n[](https://github.com/dream-num/univer/graphs/contributors)\n[](https://github.com/dream-num/univer/issues)\n[](https://github.com/dream-num/univer/commits/dev/)\n\n[](https://discord.gg/z3NKNT6D2f)\n[](https://twitter.com/univerhq)\n[](https://opencollective.com/univer)\n\n[](https://trendshift.io/repositories/4376)\n\n\n\n## ✨ What is Univer?\n\nUniver is an open-source SDK for creating office applications inside your own product. It gives you the building blocks for spreadsheet, document, and presentation experiences without forcing you into a hosted app or a fixed UI.\n\nUse Univer when you need to:\n\n- Embed spreadsheet or document editing into a SaaS product, internal tool, BI workflow, or AI application.\n- Run workbook/document processing on the server with the same architecture used in the browser.\n- Compose only the features you need through plugins or start quickly with presets.\

FAQ (1)

문제 해결
Univer(headless/Node)에서 시트 이름을 변경한 후 정의된 이름을 사용하는 수식이 #NAME?을 반환하는 이유는 무엇인가요?

이것은 @univerjs/engine-formula / @univerjs/sheets-formula 1.0.3에서 발생하는 시트 이름 상태가 갱신되지 않는(stale) 버그입니다. sheet.setName()을 호출한 후, 정의된 이름의 formulaOrRefString은 새 시트 이름(예: Rates2!$A$1)으로 올바르게 다시 작성되지만, 수식 엔진은 여전히 이전 시트 이름 매핑을 기준으로 해당 이름을 해석하므로, 해당 이름을 참조하는 모든 수식(예: =Q+1)이 다음 계산에서 #NAME?을 반환합니다. 동일한 문자열로 setRef()를 호출해도 문제가 해결되지 않으며, 정의된 이름을 삭제한 후 다시 삽입하면 대신 #REF!가 반환됩니다. 해결 방법: 시트 이름을 변경한 후 통합 문서 스냅샷(wb.save())을 저장하고 해당 스냅샷을 새로운 Univer 인스턴스에 로드하면, 해당 이름이 올바른 시트 이름 상태를 기준으로 해석되고 수식이 다시 정상적으로 계산됩니다.

원본 Issue #7805