Formula-preserving, multi-sheet workbook export through the optional XLSX backend.
Examples
downloadBytes(bytes, "workbook.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
See also
Declaration
Referenced by
Workspace packages depending on @sheetwrite/core
@sheetwrite/benchdependency
@sheetwrite/docs-startdependency
@sheetwrite/reactdependency
@sheetwrite/sveltedependency
@sheetwrite/vuedependency
@sheetwrite/xlsxdependency
Public exports naming toXlsxWorkbook
function registerXlsxBackends(): voidfunction registerXlsxBackends(): voidfunction registerXlsxBackends(): voidRegister all concrete XLSX backends with the backend-neutral core contracts.@example import { registerXlsxBackends } from "@sheetwrite/xlsx"; import { fromXlsxWorkbook } from "@sheetwrite/core"; registerXlsxBackends(); async function open(file: File) { return fromXlsxWorkbook(await file.arrayBuffer()); }@see /docs/guides/xlsx-export/API reference →function toXlsxWorkbook(input: WorkbookSnapshot | Pick<Grid, "exportSnapshot">, options?: XlsxWorkbookOptions): Promise<Uint8Array>function toXlsxWorkbook(
input: WorkbookSnapshot | Pick<Grid, "exportSnapshot">,
options?: XlsxWorkbookOptions,
): Promise<Uint8Array>function toXlsxWorkbook(
input:
| WorkbookSnapshot
| Pick<
Grid,
"exportSnapshot"
>,
options?: XlsxWorkbookOptions,
): Promise<Uint8Array>Formula-preserving, multi-sheet workbook export through the optional XLSX backend.@example import { registerXlsxBackends } from "@sheetwrite/xlsx"; import { toXlsxWorkbook, downloadBytes, type Grid } from "@sheetwrite/core"; registerXlsxBackends(); async function download(grid: Grid) { const bytes = await toXlsxWorkbook(grid); downloadBytes(bytes, "workbook.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); }@see fromXlsxWorkbookAPI reference →function downloadBytes(bytes: Uint8Array | string, filename: string, mime: string): voidfunction downloadBytes(
bytes: Uint8Array | string,
filename: string,
mime: string,
): voidfunction downloadBytes(
bytes: Uint8Array | string,
filename: string,
mime: string,
): voidTrigger a browser download from in-memory bytes. The temporary anchor is removed and its object URL is scheduled for revocation even when DOM append or click throws.API reference →interface Gridinterface Gridinterface GridImperative grid handle for document commands, events, rendering, and teardown.@example import type { Grid } from "@sheetwrite/core"; function updateTotal(grid: Grid) { const sheet = grid.getActiveSheet(); const result = grid.applyTransaction({ patches: [{ op: "set", addr: { sheet, row: 0, col: 0 }, value: { kind: "literal", value: 42 } }], }); if (result.status === "applied") grid.scrollToCell({ sheet, row: 0, col: 0 }); return grid.aggregate(0, "sum"); }@see createGrid *@see Grid.applyTransactionAPI reference →function download(grid: Grid): Promise<void>function download(grid: Grid): Promise<void>function download(
grid: Grid,
): Promise<void>API reference →grid: Gridlet grid: Gridlet grid: GridThe imperative core grid this controller owns.API reference →const bytes: Uint8Array<ArrayBufferLike>const bytes: Uint8Array<ArrayBufferLike>const bytes: Uint8Array<ArrayBufferLike>interface WorkbookSnapshot {
schemaVersion: 1;
documentId?: string;
version?: number;
workbook: {
activeSheet: SheetId;
namedRanges?: NamedRangeSnapshot[];
};
sheets: SheetSnapshot[];
}interface WorkbookSnapshot {
schemaVersion: 1;
documentId?: string;
version?: number;
workbook: {
activeSheet: SheetId;
namedRanges?: NamedRangeSnapshot[];
};
sheets: SheetSnapshot[];
}interface WorkbookSnapshot {
schemaVersion: 1;
documentId?: string;
version?: number;
workbook: {
activeSheet: SheetId;
namedRanges?: NamedRangeSnapshot[];
};
sheets: SheetSnapshot[];
}Schema-versioned serializable workbook document.API reference →interface Grid {
readonly store: Store;
readonly actions: GridActions;
getRuntimeResourceSnapshot(
operation: RuntimeResourceOperation,
phase: RuntimeResourcePhase,
runtime?: RuntimeMemoryObservation,
): RuntimeResourceSnapshot;
getCommandState(command: GridCommandName): GridCommandState;
setActiveSheet(id: SheetId): void;
scrollToCell(addr: CellAddress): void;
getCellAtPoint(
clientX: number,
clientY: number,
): CellAddress | null;
// … 122 more lines — see the API reference
}interface Grid {
readonly store: Store;
readonly actions: GridActions;
getRuntimeResourceSnapshot(
operation: RuntimeResourceOperation,
phase: RuntimeResourcePhase,
runtime?: RuntimeMemoryObservation,
): RuntimeResourceSnapshot;
getCommandState(command: GridCommandName): GridCommandState;
setActiveSheet(id: SheetId): void;
scrollToCell(addr: CellAddress): void;
getCellAtPoint(
clientX: number,
clientY: number,
): CellAddress | null;
// … 122 more lines — see the API reference
}interface Grid {
readonly store: Store;
readonly actions: GridActions;
getRuntimeResourceSnapshot(
operation: RuntimeResourceOperation,
phase: RuntimeResourcePhase,
runtime?: RuntimeMemoryObservation,
): RuntimeResourceSnapshot;
getCommandState(
command: GridCommandName,
): GridCommandState;
setActiveSheet(
id: SheetId,
): void;
scrollToCell(
addr: CellAddress,
): void;
getCellAtPoint(
clientX: number,
// … 259 more lines — see the API reference
}Imperative grid handle for document commands, events, rendering, and teardown. @example import type { Grid } from "@sheetwrite/core"; function updateTotal(grid: Grid) { const sheet = grid.getActiveSheet(); const result = grid.applyTransaction({ patches: [{ op: "set", addr: { sheet, row: 0, col: 0 }, value: { kind: "literal", value: 42 } }], }); if (result.status === "applied") grid.scrollToCell({ sheet, row: 0, col: 0 }); return grid.aggregate(0, "sum"); } @see createGrid @see Grid.applyTransactionAPI reference →interface XlsxWorkbookOptions {
signal?: AbortSignal;
maxCells?: number;
resourceLimits?: Partial<Omit<XlsxResourceLimits, "maxCells">>;
onWarning?: (warning: XlsxWorkbookWarning) => void;
}interface XlsxWorkbookOptions {
signal?: AbortSignal;
maxCells?: number;
resourceLimits?: Partial<Omit<XlsxResourceLimits, "maxCells">>;
onWarning?: (warning: XlsxWorkbookWarning) => void;
}interface XlsxWorkbookOptions {
signal?: AbortSignal;
maxCells?: number;
resourceLimits?: Partial<
Omit<
XlsxResourceLimits,
"maxCells"
>
>;
onWarning?: (
warning: XlsxWorkbookWarning,
) => void;
}Shared options passed to every registered table and workbook XLSX backend.API reference →