office-open
v0.8.1
Published
Unified Office document toolkit — CLI, AI SDK tools, Zod schemas, and all packages in one install
Maintainers
Readme
office-open
Umbrella package for Office Open XML — all packages, CLI, AI SDK tools, and Zod schemas in one install.
Features
- Unified Re-exports — Import from
office-open/docx,office-open/pptx,office-open/xlsx - CLI — Generate files from JSON via
npx office-open - AI SDK Tools — Vercel AI SDK compatible tools for
generate-docx,generate-pptx,generate-xlsx - Zod Schemas — Input validation for all document types
- Generate Function — Type-agnostic
generate()for dynamic document creation
Installation
# pnpm
pnpm add office-open
# npm
npm install office-open
# yarn
yarn add office-open
# bun
bun add office-openQuick Start
Generate from JSON
import { generate, generateToFile } from "office-open/generate";
const buffer = await generate({
type: "docx",
options: {
sections: [
{
children: [{ paragraph: "Hello World" }],
},
],
},
outputType: "nodebuffer",
});CLI
# Generate from a JSON file
npx office-open docx document.json "output.docx"
npx office-open pptx slides.json "output.pptx"
npx office-open xlsx spreadsheet.json "output.xlsx"AI SDK Tools
import { officeOpenTools } from "office-open/ai";
// Use with Vercel AI SDK
const result = await generateText({
model,
tools: officeOpenTools,
prompt: "Create a sales report as a .docx file",
});Zod Schemas
import { validateDocumentInput } from "office-open/schemas";
try {
const validated = validateDocumentInput("docx", userInput);
} catch (e) {
// Structured validation error with path and message
}Import from Sub-Packages
import { Document, Packer } from "office-open/docx";
import { Presentation, Packer } from "office-open/pptx";
import { Workbook, Packer } from "office-open/xlsx";
import { convertInchesToTwip } from "office-open/core";
import { xml2js, js2xml } from "office-open/xml";Sub-Exports
| Export Path | Description |
| ---------------------- | ---------------------------------------- |
| office-open | Main entry (re-exports all sub-packages) |
| office-open/docx | @office-open/docx |
| office-open/pptx | @office-open/pptx |
| office-open/xlsx | @office-open/xlsx |
| office-open/core | @office-open/core |
| office-open/xml | @office-open/xml |
| office-open/generate | generate() function |
| office-open/ai | Vercel AI SDK tools |
| office-open/schemas | Zod validation schemas |
JSON Document Structures
DOCX
{
"sections": [{ "children": [{ "paragraph": "Hello World" }] }]
}PPTX
{
"title": "My Deck",
"slides": [{ "children": [{ "shape": { "textBody": { "text": "Hello" } } }] }]
}XLSX
{
"worksheets": [{ "rows": [{ "cells": [{ "value": "Name" }, { "value": 95 }] }] }]
}License
MIT
