Define el contrato en Excel
Usa __config__, source_table y expresiones XTL para describir cómo los libros en bruto se convierten en informes.
Plantillas escritas por IA · runtime determinista
Un LLM (Claude, GPT, Gemini, Cursor, Codex, …) escribe template.xlsx una sola vez; xl3 convierte (template.xlsx + raw.xlsx) en result.xlsx como una función pura: con las mismas entradas, los mismos bytes, siempre.
Modelo de flujo de trabajo
Los desarrolladores construyen el conversor una sola vez. Las reglas de negocio recurrentes, la asignación de la tabla origen, el diseño y la forma de la salida permanecen dentro de la plantilla del libro, que los equipos pueden archivar y traspasar.
Usa __config__, source_table y expresiones XTL para describir cómo los libros en bruto se convierten en informes.
Quienes no programan eligen un archivo de Excel en bruto y la plantilla aprobada, y luego ejecutan el conversor.
La salida conserva la estructura de hojas, los formatos de número, los estilos y las celdas combinadas, mientras que los valores se renderizan a partir de los datos.
La plantilla se convierte en el artefacto de traspaso: un archivo portátil que captura cómo funciona el trabajo recurrente de Excel.
| A | B | C | |
|---|---|---|---|
| 1 | key | value | notes |
| 2 | source_sheet | Raw | worksheet to read |
| 3 | source_table | 1 | column names and data rows |
source_table tells the engine where the raw table starts and which columns belong to it.
Por qué lo usan los desarrolladores
Los scripts de Python, las macros de VBA y los flujos específicos de cada servicio pueden automatizar Excel, pero las reglas de negocio acaban dispersas entre el código, las cuentas y el conocimiento tácito.
xl3 separa el motor reutilizable del contrato específico de cada libro. Los desarrolladores mantienen la integración en TypeScript, mientras que cada trabajo recurrente de Excel viaja como una plantilla de libro.
Encaje operativo
Las personas que ejecutan el flujo de trabajo no deberían tener que leer código. Necesitan un conversor estable, una plantilla aprobada y un libro de resultado predecible.
Las reglas del informe viven en un archivo de libro que se puede revisar, versionar, archivar y entregar al siguiente operador.
template.xlsxEl runtime se puede exponer como una página de navegador: sube los datos en bruto, selecciona la plantilla y descarga el libro.
raw.xlsx → result.xlsxMantén el despliegue, la validación y la integración en código, mientras las reglas de flujo específicas de cada plantilla permanecen en Excel.
convert(template, raw)XTL 0.1 se publica con 70 ADRs y 154 conformance fixtures, todos en verde en la Etapa 2. La implementación de referencia en TypeScript está publicada en @jinyoung4478/xl3; la Guía del portador documenta el contrato para que un port a un segundo lenguaje pueda igualarlo.
Cómo se compara
| Enfoque | Mejor para | Contrapartida |
|---|---|---|
| xl3 | La mitad de ejecución de un pipeline de Excel escrito por un LLM. El modelo escribe la plantilla una sola vez; xl3 la renderiza de forma determinista en cada ejecución. | Alfa; un único mantenedor; la superficie de XTL es deliberadamente pequeña y seguirá evolucionando hasta la 1.0. |
| Direct LLM → xlsx (spreadsheet SDK function call) | Borradores exploratorios rápidos y gráficos puntuales. | Cada render es no determinista; los estilos, los formatos de número y los totales se desplazan entre ejecuciones, incluso con temperature 0. |
| Spreadsheet SDKs (SheetJS, ExcelJS, openpyxl) | Generación de libros a bajo nivel. | El modelo tiene que aprender toda la superficie del SDK y volver a emitirla en cada render; la "plantilla" es código de aplicación, no un archivo portátil. |
| Power Query / Office Scripts | Flujos de trabajo en Microsoft 365 y modelado de datos dentro del ecosistema Excel. | Atados a un tenant; las reglas del flujo no viajan con el libro. |
| Template engines (JXLS, xltpl, jsreport xlsx) | Generación de informes en servidor a partir de plantillas tipo hoja de cálculo. | Son anteriores al modelo de LLM-como-autor; sus DSL de plantilla son más amplias y no están pensadas para que las emita un modelo. |
| Doc-gen SaaS (Plumsail, Conga, Formstack) | Flujos de documentos gestionados, integraciones, aprobaciones y entrega. | Las reglas viven en un servicio del proveedor, no en un libro portátil que puedas darle a un LLM para que lo edite. |
| Python / VBA scripts | Automatización puntual y rápida, cercana a las hojas de cálculo existentes. | Las reglas viven en el código o en la memoria de quien lo mantiene; no son un artefacto que un modelo pueda emitir. |
API para desarrolladores
Usa el paquete cuando el flujo de demostración deba convertirse en un portal interno, una CLI o un endpoint de servicio. La experiencia del operador puede seguir siendo basada en archivos, mientras tu app se encarga del despliegue y la validación.
$npm install @jinyoung4478/xl3import { convert } from '@jinyoung4478/xl3';
const outputs = await convert(templateBuffer, dataBuffer);
// OutputFile[] → formatted .xlsx workbook(s)Cookbook 01 — Empieza en 5 minutos · Leer la especificación · Guía del portador