개요
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 인스턴스에 로드하면, 해당 이름이 올바른 시트 이름 상태를 기준으로 해석되고 수식이 다시 정상적으로 계산됩니다.