Result: imported rows after opening a workbook whose first row is Item, Amount
The source file has headers Item, Amount, then rows Tea, 12 and Coffee, 18. The headers become column keys, not data cells. Edit a value, then save the current workbook.
The adapter initializes WASM after client mount and destroys its Grid on unmount. Use the handle published by onReady, not a handle captured before initialization. Import replaces the workbook and data together. This creates a new Grid generation; ready publishes its replacement. Do not call grid.destroy() on an adapter-owned Grid.
React clears the host-held handle in effect cleanup. Vue and Svelte adapters also clear their exposed or bound handle on reset. Dispose any host subscriptions or persistence coordinators before attaching them to the replacement. This example attaches none. File controls are disabled during conversion, and unmount aborts the outstanding codec operation.
Use a client component in Next.js. Import the adapter stylesheet once. Keep workbook and data identities stable between imports so unrelated renders do not reset edits.
Options and limits
Choice
Behavior
Import
fromXlsxTable reads only the first sheet. Its first row supplies headers. Formula source and workbook formatting are not preserved by table import.
Save
toXlsxWorkbook saves the current Grid as a workbook, not only its visible viewport.
Budget
This example accepts 100,000 cells and at most 8 MiB of input. Codec defaults still bound ZIP entries, expanded bytes, XML depth and other resources.
Cancel
Unmount aborts work between bounded codec stages. Cancellation is not an immediate interrupt inside a stage.
Import builds the full result in memory. The Blob workbook importer avoids an initial full-file buffer, but still returns an in-memory snapshot; it is not an unbounded-data reader. Use workbook interchange instead of table import when you must retain sheets, formulas, styles and kept parts. Surface its onWarning messages when fidelity matters. Resource failures are XlsxResourceError values and also satisfy isSheetwriteError.
interface RefObject<T>interfaceRefObject<T>interfaceRefObject<T>Created by createRef, or useRef when passed null.@template T The type of the ref's value.Exampleconstref=createRef<HTMLDivElement>();ref.current = document.createElement('div'); // Errorfunction ExcelGrid({ input, grid }: {
input: {
workbook: Workbook;
data: ColumnarData;
};
grid: RefObject<Grid | null>;
}): JSX.ElementfunctionExcelGrid({input,grid,}: {input: {workbook:Workbook;data:ColumnarData;};grid:RefObject<Grid|null>;}):JSX.ElementfunctionExcelGrid({input,grid,}: {input: {workbook:Workbook;data:ColumnarData;};grid:RefObject<Grid|null>;}):JSX.Elementinput: {
workbook: Workbook;
data: ColumnarData;
}let input: {workbook:Workbook;data:ColumnarData;}let input: {workbook:Workbook;data:ColumnarData;}grid: RefObject<Grid | null>let grid:RefObject<Grid|null>let grid:RefObject<Grid|null>The imperative core grid this controller owns.API reference →workbook: Workbooklet workbook:Workbooklet workbook:WorkbookLive workbook schema adopted by the store and updated by document operations.API reference →interface WorkbookinterfaceWorkbookinterfaceWorkbookLive workbook schema containing ordered sheets and the active sheet ID.API reference →data: ColumnarDatalet data:ColumnarDatalet data:ColumnarDataEager column-major values loaded into workbook.activeSheet; use instead of datasource.API reference →interface ColumnarDatainterfaceColumnarDatainterfaceColumnarDataEager column-oriented values used to initialize a sheet.API reference →interface GridinterfaceGridinterfaceGridImperative grid handle for document commands, events, rendering, and teardown.Exampleimporttype { Grid } from"@sheetwrite/core";functionupdateTotal(grid:Grid) {constsheet= grid.getActiveSheet();constresult= 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 alsocreateGrid *See alsoGrid.applyTransactionAPI reference →const SheetwriteGrid: <Id extends RowBridgeId = RowBridgeId>(props: SheetwriteGridProps<Id> & {
ref?: ForwardedRef<Grid>;
}) => ReactElementconstSheetwriteGrid: <IdextendsRowBridgeId=RowBridgeId,>(props:SheetwriteGridProps<Id> & {ref?:ForwardedRef<Grid>;},) =>ReactElementconstSheetwriteGrid: <IdextendsRowBridgeId=RowBridgeId,>(props:SheetwriteGridProps<Id> & {ref?:ForwardedRef<Grid>;},) =>ReactElementAdvanced framework component with inferred row-bridge identity.Exampleimport { SheetwriteGrid } from"@sheetwrite/react";importtype { Workbook } from"@sheetwrite/core";exportfunctionWorkbookView({ workbook }: { workbook:Workbook }) {return <SheetwriteGridworkbook={workbook} height={400} />;}See alsoSheetwrite *See also/docs/frameworks/react/API reference →SheetwriteGridProps<Id extends RowBridgeId = RowBridgeId>.height?: string | number | undefinedinterfaceSheetwriteGridProps<IdextendsRowBridgeId=RowBridgeId,> {height?:string|number|undefined;}interfaceSheetwriteGridProps<IdextendsRowBridgeId=RowBridgeId,> {height?:string|number|undefined;}Host height in CSS pixels for numbers or any CSS length string.API reference →SheetwriteGridProps<RowBridgeId>.onReady?: ((event: GridReadyEvent) => void) | undefinedinterfaceSheetwriteGridProps<RowBridgeId> {onReady?: ((event:GridReadyEvent) =>void) |undefined;}interfaceSheetwriteGridProps<RowBridgeId,> {onReady?:| ((event:GridReadyEvent,) =>void)|undefined;}Fires after the adapter publishes a ready Grid generation.API reference →GridReadyEvent.grid: GridinterfaceGridReadyEvent {grid:Grid;}interfaceGridReadyEvent {grid:Grid;}Live handle just published by the adapter; replaced on the next reset generation.API reference →ready: Gridlet ready:Gridlet ready:GridLive handle just published by the adapter; replaced on the next reset generation.API reference →RefObject<Grid | null>.current: Grid | nullinterfaceRefObject<Grid|null> { current:Grid|null }interfaceRefObject<Grid|null> { current:Grid|null }The current value of the ref.API reference →function useEffect(effect: EffectCallback, deps?: DependencyList): voidfunctionuseEffect(effect:EffectCallback,deps?:DependencyList,):voidfunctionuseEffect(effect:EffectCallback,deps?:DependencyList,):voidAccepts a function that contains imperative, possibly effectful code.@param effect Imperative function that can return a cleanup function@param deps If present, effect will only activate if the values in the list change.@version 16.8.0See alsoreact.dev/reference/react/useEffectfunction useRef<T>(initialValue: T): RefObject<T> (+2 overloads)functionuseRef<T>(initialValue:T):RefObject<T> (+2overloads)functionuseRef<T>(initialValue:T):RefObject<T> (+2overloads)useRef returns a mutable ref object whose .current property is initialized to the passed argument (initialValue). The returned object will persist for the full lifetime of the component. Note that useRef() is useful for more than the ref attribute. It’s handy for keeping any mutable value around similar to how you’d use instance fields in classes.@version 16.8.0See alsoreact.dev/reference/react/useReffunction useState<S>(initialState: S | (() => S)): [S, Dispatch<SetStateAction<S>>] (+1 overload)functionuseState<S>(initialState:S| (() =>S)): [S, Dispatch<SetStateAction<S>>] (+1overload)functionuseState<S>(initialState:S| (() =>S)): [S, Dispatch<SetStateAction<S>>] (+1overload)Returns a stateful value, and a function to update it.@version 16.8.0See alsoreact.dev/reference/react/useStatefunction fromXlsxTable(data: ArrayBuffer | Uint8Array, options?: XlsxWorkbookOptions): Promise<ColumnarData>functionfromXlsxTable(data:ArrayBuffer|Uint8Array,options?:XlsxWorkbookOptions,):Promise<ColumnarData>functionfromXlsxTable(data:ArrayBuffer|Uint8Array,options?:XlsxWorkbookOptions,):Promise<ColumnarData>Parse the first sheet of .xlsx bytes into ColumnarData. The first parsed row is treated as the header and its cell text becomes each column's key. Numbers stay numbers, date cells use the date-serial convention, strings are verbatim, and empty cells become null.Exampleimport { registerXlsxBackends } from"@sheetwrite/xlsx";import { fromXlsxTable } from"@sheetwrite/core";registerXlsxBackends();asyncfunctionopenTable(file:File) {returnfromXlsxTable(await file.arrayBuffer());}See alsotoXlsxTableAPI reference →function toXlsxWorkbook(input: WorkbookSnapshot | Pick<Grid, "exportSnapshot">, options?: XlsxWorkbookOptions): Promise<Uint8Array>functiontoXlsxWorkbook(input:WorkbookSnapshot|Pick<Grid, "exportSnapshot">,options?:XlsxWorkbookOptions,):Promise<Uint8Array>functiontoXlsxWorkbook(input:|WorkbookSnapshot|Pick<Grid,"exportSnapshot">,options?:XlsxWorkbookOptions,):Promise<Uint8Array>Formula-preserving, multi-sheet workbook export through the optional XLSX backend.Exampleimport { registerXlsxBackends } from"@sheetwrite/xlsx";import { toXlsxWorkbook, downloadBytes, type Grid } from"@sheetwrite/core";registerXlsxBackends();asyncfunctiondownload(grid:Grid) {constbytes=awaittoXlsxWorkbook(grid);downloadBytes(bytes, "workbook.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");}See alsofromXlsxWorkbookAPI reference →function downloadBytes(bytes: Uint8Array | string, filename: string, mime: string): voidfunctiondownloadBytes(bytes:Uint8Array|string,filename:string,mime:string,):voidfunctiondownloadBytes(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 →function isSheetwriteError(value: unknown): value is SheetwriteErrorEnvelopefunctionisSheetwriteError(value:unknown,):valueisSheetwriteErrorEnvelopefunctionisSheetwriteError(value:unknown,):valueisSheetwriteErrorEnvelopeNarrow same-realm errors, cross-realm errors, and serialized failure envelopes.API reference →interface XlsxWorkbookOptionsinterfaceXlsxWorkbookOptionsinterfaceXlsxWorkbookOptionsShared options passed to every registered table and workbook XLSX backend.API reference →ColumnarData.rowCount: numberinterfaceColumnarData {rowCount:number;}interfaceColumnarData {rowCount:number;}Row count for both in-memory and datasource-backed sheets.API reference →ColumnarData.columns: Record<string, ArrayLike<CellScalar | CellValue>>interfaceColumnarData {columns:Record<string, ArrayLike<CellScalar|CellValue>>;}interfaceColumnarData {columns:Record<string,ArrayLike<CellScalar|CellValue>>;}Exact column runs represented by every returned row.API reference →type Item: string[]typeItem: string[]typeItem: string[]type Amount: number[]typeAmount: number[]typeAmount: number[]Workbook.activeSheet: stringinterfaceWorkbook {activeSheet:string;}interfaceWorkbook {activeSheet:string;}Active sheet ID and initial tab presented when the grid is created.API reference →Workbook.sheets: Sheet[]interfaceWorkbook {sheets:Sheet[];}interfaceWorkbook {sheets:Sheet[];}Sheets in display/tab order.API reference →Sheet.id: stringinterfaceSheet {id:string;}interfaceSheet {id:string;}Stable identifier, unique within the workbook and used by every cell address.API reference →Sheet.name: stringinterfaceSheet {name:string;}interfaceSheet {name:string;}User-facing sheet name shown in tabs and workbook exports.API reference →Sheet.rowCount: numberinterfaceSheet {rowCount:number;}interfaceSheet {rowCount:number;}Row count for both in-memory and datasource-backed sheets.API reference →Sheet.columns: Column[]interfaceSheet {columns:Column[];}interfaceSheet {columns:Column[];}Ordered schema; array positions are the zero-based column coordinates.API reference →var Object: ObjectConstructorvar Object:ObjectConstructorvar Object:ObjectConstructorProvides functionality common to all JavaScript objects.ObjectConstructor.keys(o: {}): string[] (+1 overload)ObjectConstructor.keys(o: {}): string[] (+1 overload)ObjectConstructor.keys(o: {}): string[] (+1 overload)Returns the names of the enumerable string properties and methods of an object.@param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.API reference →Array<string>.map<{
key: string;
header: string;
width: number;
type: "number" | "text";
}>(callbackfn: (value: string, index: number, array: string[]) => {
key: string;
header: string;
width: number;
type: "number" | "text";
}, thisArg?: any): {
key: string;
header: string;
width: number;
type: "number" | "text";
}[]Array<string>.map<{key:string;header:string;width:number;type:"number"|"text";}>(callbackfn: (value:string, index:number, array:string[]) => {key:string;header:string;width:number;type:"number"|"text";}, thisArg?:any): {key:string;header:string;width:number;type:"number"|"text";}[]Array<string>.map<{key:string;header:string;width:number;type:"number"|"text";}>(callbackfn: (value:string, index:number, array:string[]) => {key:string;header:string;width:number;type:"number"|"text";}, thisArg?:any): {key:string;header:string;width:number;type:"number"|"text";}[]Calls a defined callback function on each element of an array, and returns an array that contains the results.@param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.@param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.key: stringlet key:stringlet key:stringNon-empty key, unique within the sheet, used to map input and datasource values.API reference →header: stringlet header:stringlet header:stringSchema label used by table exports and data-grid presentation headers.API reference →width: numberlet width:numberlet width:numberUnzoomed column width in CSS pixels.API reference →type: "number" | "text"let type:"number"|"text"let type:"number"|"text"Controls cell input parsing and default value formatting for this column.API reference →const message: (error: unknown) => stringconstmessage: (error:unknown) =>stringconstmessage: (error:unknown,) =>stringerror: SheetwriteErrorEnvelopelet error:SheetwriteErrorEnvelopelet error:SheetwriteErrorEnvelopeAPI reference →SheetwriteErrorEnvelope.code: "initialization-failed" | "initialization-required" | "datasource-request-failed" | "renderer-fallback" | "export-failed" | "xlsx-import-failed" | "optional-backend-unavailable" | "delimited-text-resource-limit" | "delimited-text-invalid-limit" | "xlsx-resource-limit" | "resource-limit" | "invalid-snapshot" | "aborted" | "not-found" | "commit-rejected" | "unavailable" | "blocked" | "quota" | "unsupported-schema" | "transaction" | "conflict" | "limit" | "invalid-limits" | "invalid-version" | "invalid-id" | "invalid-operations" | ... 24 more ... | "shortcut-conflict"interfaceSheetwriteErrorEnvelope { code:"initialization-failed"|"initialization-required"|"datasource-request-failed"|"renderer-fallback"|"export-failed"|"xlsx-import-failed"|"optional-backend-unavailable"|"delimited-text-resource-limit"|"delimited-text-invalid-limit"|"xlsx-resource-limit"|"resource-limit"|"invalid-snapshot"|"aborted"|"not-found"|"commit-rejected"|"unavailable"|"blocked"|"quota"|"unsupported-schema"|"transaction"|"conflict"|"limit"|"invalid-limits"|"invalid-version"|"invalid-id"|"invalid-operations"| ... 24more ... |"shortcut-conflict" }interfaceSheetwriteErrorEnvelope { code:"initialization-failed"|"initialization-required"|"datasource-request-failed"|"renderer-fallback"|"export-failed"|"xlsx-import-failed"|"optional-backend-unavailable"|"delimited-text-resource-limit"|"delimited-text-invalid-limit"|"xlsx-resource-limit"|"resource-limit"|"invalid-snapshot"|"aborted"|"not-found"|"commit-rejected"|"unavailable"|"blocked"|"quota"|"unsupported-schema"|"transaction"|"conflict"|"limit"|"invalid-limits"|"invalid-version"|"invalid-id"|"invalid-operations"| ... 24more ... |"shortcut-conflict" }API reference →SheetwriteErrorEnvelope.message: stringinterfaceSheetwriteErrorEnvelope {message:string;}interfaceSheetwriteErrorEnvelope {message:string;}API reference →var String: StringConstructor
(value?: any) => stringvar String:StringConstructor;(value?:any) => stringvar String:StringConstructor;(value?:any) => stringAllows manipulation and formatting of text strings and determination and location of substrings within strings.error: unknownlet error:unknownlet error:unknownconst mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"constmime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"constmime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"function ExcelTable(): JSX.ElementfunctionExcelTable():JSX.ElementfunctionExcelTable():JSX.Elementconst input: {
workbook: Workbook;
data: ColumnarData;
}constinput: {workbook:Workbook;data:ColumnarData;}constinput: {workbook:Workbook;data:ColumnarData;}const setInput: Dispatch<SetStateAction<{
workbook: Workbook;
data: ColumnarData;
}>>constsetInput:Dispatch<SetStateAction<{workbook:Workbook;data:ColumnarData;}>>constsetInput:Dispatch<SetStateAction<{workbook:Workbook;data:ColumnarData;}>>useState<{
workbook: Workbook;
data: ColumnarData;
}>(initialState: {
workbook: Workbook;
data: ColumnarData;
} | (() => {
workbook: Workbook;
data: ColumnarData;
})): [{
workbook: Workbook;
data: ColumnarData;
}, Dispatch<SetStateAction<{
workbook: Workbook;
data: ColumnarData;
}>>] (+1 overload)useState<{workbook:Workbook;data:ColumnarData;}>(initialState: {workbook:Workbook;data:ColumnarData;} | (() => {workbook:Workbook;data:ColumnarData;})): [{workbook:Workbook;data:ColumnarData;}, Dispatch<SetStateAction<{workbook:Workbook;data:ColumnarData;}>>] (+1overload)useState<{workbook:Workbook;data:ColumnarData;}>(initialState: {workbook:Workbook;data:ColumnarData;} | (() => {workbook:Workbook;data:ColumnarData;})): [{workbook:Workbook;data:ColumnarData;}, Dispatch<SetStateAction<{workbook:Workbook;data:ColumnarData;}>>] (+1overload)Returns a stateful value, and a function to update it.@version 16.8.0See alsoreact.dev/reference/react/useStatefunction workbookFor(data: ColumnarData): WorkbookfunctionworkbookFor(data:ColumnarData):WorkbookfunctionworkbookFor(data:ColumnarData,):Workbookconst initialData: ColumnarDataconstinitialData:ColumnarDataconstinitialData:ColumnarDataAPI reference →const grid: RefObject<Grid | null>constgrid:RefObject<Grid|null>constgrid:RefObject<Grid|null>The imperative core grid this controller owns.API reference →useRef<Grid | null>(initialValue: Grid | null): RefObject<Grid | null> (+2 overloads)useRef<Grid|null>(initialValue: Grid |null): RefObject<Grid|null> (+2 overloads)useRef<Grid|null>(initialValue: Grid |null): RefObject<Grid|null> (+2 overloads)useRef returns a mutable ref object whose .current property is initialized to the passed argument (initialValue). The returned object will persist for the full lifetime of the component. Note that useRef() is useful for more than the ref attribute. It’s handy for keeping any mutable value around similar to how you’d use instance fields in classes.@version 16.8.0See alsoreact.dev/reference/react/useRefAPI reference →const controller: RefObject<AbortController | null>constcontroller:RefObject<AbortController|null>constcontroller:RefObject<AbortController|null>useRef<AbortController | null>(initialValue: AbortController | null): RefObject<AbortController | null> (+2 overloads)useRef<AbortController|null>(initialValue: AbortController |null): RefObject<AbortController|null> (+2 overloads)useRef<AbortController|null>(initialValue: AbortController |null): RefObject<AbortController|null> (+2 overloads)useRef returns a mutable ref object whose .current property is initialized to the passed argument (initialValue). The returned object will persist for the full lifetime of the component. Note that useRef() is useful for more than the ref attribute. It’s handy for keeping any mutable value around similar to how you’d use instance fields in classes.@version 16.8.0See alsoreact.dev/reference/react/useRefinterface AbortControllerinterfaceAbortControllerinterfaceAbortControllerThe AbortController interface represents a controller object that allows you to abort one or more Web requests as and when desired. MDN Reference An AbortController cancels one or more Web requests: pass its signal to a request, then call abort(). MDN Referenceconst busy: booleanconstbusy:booleanconstbusy:booleanconst setBusy: Dispatch<SetStateAction<boolean>>constsetBusy:Dispatch<SetStateAction<boolean>>constsetBusy:Dispatch<SetStateAction<boolean>>useState<boolean>(initialState: boolean | (() => boolean)): [boolean, Dispatch<SetStateAction<boolean>>] (+1 overload)useState<boolean>(initialState: boolean | (() => boolean)): [boolean, Dispatch<SetStateAction<boolean>>] (+1 overload)useState<boolean>(initialState: boolean | (() => boolean)): [boolean, Dispatch<SetStateAction<boolean>>] (+1 overload)Returns a stateful value, and a function to update it.@version 16.8.0See alsoreact.dev/reference/react/useStateconst error: stringconsterror:stringconsterror:stringconst setError: Dispatch<SetStateAction<string>>constsetError:Dispatch<SetStateAction<string>>constsetError:Dispatch<SetStateAction<string>>useState<string>(initialState: string | (() => string)): [string, Dispatch<SetStateAction<string>>] (+1 overload)useState<string>(initialState: string | (() => string)): [string, Dispatch<SetStateAction<string>>] (+1 overload)useState<string>(initialState: string | (() => string)): [string, Dispatch<SetStateAction<string>>] (+1 overload)Returns a stateful value, and a function to update it.@version 16.8.0See alsoreact.dev/reference/react/useStateRefObject<AbortController | null>.current: AbortController | nullinterfaceRefObject<AbortController|null> { current:AbortController|null }interfaceRefObject<AbortController|null> { current:AbortController|null }The current value of the ref.var AbortController: new () => AbortControllervar AbortController:new () =>AbortControllervar AbortController:new () =>AbortControllerThe AbortController interface represents a controller object that allows you to abort one or more Web requests as and when desired. MDN Reference An AbortController cancels one or more Web requests: pass its signal to a request, then call abort(). MDN ReferenceAbortController.abort(reason?: any): void (+1 overload)AbortController.abort(reason?: any): void (+1 overload)AbortController.abort(reason?: any): void (+1 overload)The abort() method of the AbortController interface aborts an asynchronous operation before it has completed. MDN Referenceconst options: () => XlsxWorkbookOptionsconstoptions: () =>XlsxWorkbookOptionsconstoptions: () =>XlsxWorkbookOptionsAPI reference →XlsxWorkbookOptions.signal?: AbortSignal | undefinedinterfaceXlsxWorkbookOptions {signal?:AbortSignal|undefined;}interfaceXlsxWorkbookOptions {signal?:AbortSignal|undefined;}Abort before or between bounded codec operations.API reference →AbortController.signal: AbortSignal | undefinedinterfaceAbortController {signal:AbortSignal|undefined;}interfaceAbortController {signal:AbortSignal|undefined;}The signal read-only property of the AbortController interface returns an AbortSignal object instance, which can be used to communicate with/abort an asynchronous operation as desired. MDN ReferenceAPI reference →XlsxWorkbookOptions.maxCells?: number | undefinedinterfaceXlsxWorkbookOptions {maxCells?:number|undefined;}interfaceXlsxWorkbookOptions {maxCells?:number|undefined;}Cells accounted by the active conversion path; defaults to 1,000,000.API reference →XlsxWorkbookOptions.resourceLimits?: Partial<Omit<XlsxResourceLimits, "maxCells">> | undefinedinterfaceXlsxWorkbookOptions {resourceLimits?:Partial<Omit<XlsxResourceLimits, "maxCells">> |undefined;}interfaceXlsxWorkbookOptions {resourceLimits?:|Partial<Omit<XlsxResourceLimits,"maxCells">>|undefined;}Positive overrides for every XLSX resource dimension except maxCells.API reference →maxInputBytes?: number | undefinedmaxInputBytes?: number |undefinedmaxInputBytes?: number |undefinedCompressed workbook input bytes; defaults to 32 MiB.API reference →XlsxWorkbookOptions.onWarning?: ((warning: XlsxWorkbookWarning) => void) | undefinedinterfaceXlsxWorkbookOptions {onWarning?: ((warning:XlsxWorkbookWarning) =>void) |undefined;}interfaceXlsxWorkbookOptions {onWarning?:| ((warning:XlsxWorkbookWarning,) =>void)|undefined;}warning: XlsxWorkbookWarninglet warning:XlsxWorkbookWarninglet warning:XlsxWorkbookWarningAPI reference →const setError: (value: SetStateAction<string>) => voidconstsetError: (value:SetStateAction<string>) =>voidconstsetError: (value:SetStateAction<string>,) =>voidXlsxWorkbookWarning.message: stringinterfaceXlsxWorkbookWarning {message:string;}interfaceXlsxWorkbookWarning {message:string;}API reference →(local function) open(file: File): Promise<void>(local function) open(file:File):Promise<void>(local function) open(file:File):Promise<void>interface FileinterfaceFileinterfaceFileThe File interface provides information about files and allows JavaScript in a web page to access their content. MDN Referenceconst setBusy: (value: SetStateAction<boolean>) => voidconstsetBusy: (value:SetStateAction<boolean>) =>voidconstsetBusy: (value:SetStateAction<boolean>,) =>voidfile: Filelet file:Filelet file:FileBlob.size: numberinterfaceBlob {size:number;}interfaceBlob {size:number;}The size read-only property of the Blob interface returns the size of the Blob or File in bytes. MDN Reference The size of this Blob in bytesvar Error: ErrorConstructor
new (message?: string, options?: ErrorOptions) => Error (+2 overloads)var Error:ErrorConstructornew (message?:string, options?:ErrorOptions) =>Error (+2 overloads)var Error:ErrorConstructornew (message?:string, options?:ErrorOptions) =>Error (+2 overloads)const data: ColumnarDataconstdata:ColumnarDataconstdata:ColumnarDataEager column-major values loaded into workbook.activeSheet; use instead of datasource.API reference →Blob.arrayBuffer(): Promise<ArrayBuffer> (+1 overload)Blob.arrayBuffer(): Promise<ArrayBuffer> (+1 overload)Blob.arrayBuffer(): Promise<ArrayBuffer> (+1 overload)Returns a promise that resolves to the contents of the blob as an ArrayBufferAbortController.signal: AbortSignalinterfaceAbortController {signal:AbortSignal;}interfaceAbortController {signal:AbortSignal;}The signal read-only property of the AbortController interface returns an AbortSignal object instance, which can be used to communicate with/abort an asynchronous operation as desired. MDN ReferenceAPI reference →AbortSignal.aborted: boolean | undefinedinterfaceAbortSignal {aborted:boolean|undefined;}interfaceAbortSignal {aborted:boolean|undefined;}The aborted read-only property returns a value that indicates whether the asynchronous operations the signal is communicating with are aborted (true) or not (false). MDN Referenceconst setInput: (value: SetStateAction<{
workbook: Workbook;
data: ColumnarData;
}>) => voidconstsetInput: (value:SetStateAction<{workbook:Workbook;data:ColumnarData;}>,) =>voidconstsetInput: (value:SetStateAction<{workbook:Workbook;data:ColumnarData;}>,) =>void(local var) error: unknown(local var) error: unknown(local var) error: unknown(local function) save(): Promise<void>(local function) save():Promise<void>(local function) save():Promise<void>const current: Grid | nullconstcurrent:Grid|nullconstcurrent:Grid|nullAPI reference →const bytes: Uint8Array<ArrayBufferLike>constbytes:Uint8Array<ArrayBufferLike>constbytes:Uint8Array<ArrayBufferLike>const current: Gridconstcurrent:Gridconstcurrent:GridAPI reference →JSX.IntrinsicElements.input: DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>JSX.IntrinsicElements.input: DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>JSX.IntrinsicElements.input: DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>InputHTMLAttributes<HTMLInputElement>.type?: HTMLInputTypeAttribute | undefinedinterfaceInputHTMLAttributes<HTMLInputElement> {type?:HTMLInputTypeAttribute|undefined;}interfaceInputHTMLAttributes<HTMLInputElement,> {type?:|HTMLInputTypeAttribute|undefined;}Controls cell input parsing and default value formatting for this column.API reference →InputHTMLAttributes<HTMLInputElement>.accept?: string | undefinedinterfaceInputHTMLAttributes<HTMLInputElement> {accept?:string|undefined;}interfaceInputHTMLAttributes<HTMLInputElement,> {accept?:string|undefined;}InputHTMLAttributes<HTMLInputElement>.disabled?: boolean | undefinedinterfaceInputHTMLAttributes<HTMLInputElement> {disabled?:boolean|undefined;}interfaceInputHTMLAttributes<HTMLInputElement,> {disabled?:boolean|undefined;}Static or context-aware disabled state.API reference →InputHTMLAttributes<HTMLInputElement>.onChange?: ChangeEventHandler<HTMLInputElement, HTMLInputElement> | undefinedinterfaceInputHTMLAttributes<HTMLInputElement> {onChange?:|ChangeEventHandler<HTMLInputElement, HTMLInputElement>|undefined;}interfaceInputHTMLAttributes<HTMLInputElement,> {onChange?:|ChangeEventHandler<HTMLInputElement,HTMLInputElement>|undefined;}Event callbacks forwarded from the owned grid.API reference →event: ChangeEvent<HTMLInputElement, HTMLInputElement>let event:ChangeEvent<HTMLInputElement, HTMLInputElement>let event:ChangeEvent<HTMLInputElement,HTMLInputElement>API reference →const file: File | undefinedconstfile:File|undefinedconstfile:File|undefinedBaseSyntheticEvent<Event, EventTarget & HTMLInputElement, EventTarget>.currentTarget: EventTarget & HTMLInputElementinterfaceBaseSyntheticEvent<Event, EventTarget&HTMLInputElement, EventTarget> { currentTarget:EventTarget&HTMLInputElement }interfaceBaseSyntheticEvent<Event, EventTarget&HTMLInputElement, EventTarget> { currentTarget:EventTarget&HTMLInputElement }HTMLInputElement.files: FileList | nullinterfaceHTMLInputElement {files:FileList|null;}interfaceHTMLInputElement {files:FileList|null;}The HTMLInputElement.files property allows you to access the FileList selected with the <input type='file'> element. MDN Referenceconst file: Fileconstfile:Fileconstfile:FileHTMLInputElement.value: stringinterfaceHTMLInputElement {value:string;}interfaceHTMLInputElement {value:string;}The value property of the HTMLInputElement interface represents the current value of the input element as a string. MDN ReferenceJSX.IntrinsicElements.button: DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>JSX.IntrinsicElements.button: DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>JSX.IntrinsicElements.button: DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>ButtonHTMLAttributes<HTMLButtonElement>.disabled?: boolean | undefinedinterfaceButtonHTMLAttributes<HTMLButtonElement> {disabled?:boolean|undefined;}interfaceButtonHTMLAttributes<HTMLButtonElement,> {disabled?:boolean|undefined;}Static or context-aware disabled state.API reference →DOMAttributes<HTMLButtonElement>.onClick?: MouseEventHandler<HTMLButtonElement> | undefinedinterfaceDOMAttributes<HTMLButtonElement> {onClick?:MouseEventHandler<HTMLButtonElement> |undefined;}interfaceDOMAttributes<HTMLButtonElement,> {onClick?:|MouseEventHandler<HTMLButtonElement>|undefined;}Custom click handler; receives the grid and the right-clicked cell (null if none).API reference →JSX.IntrinsicElements.p: DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>JSX.IntrinsicElements.p: DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>JSX.IntrinsicElements.p: DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>HTMLAttributes<HTMLParagraphElement>.role?: AriaRole | undefinedinterfaceHTMLAttributes<HTMLParagraphElement> {role?:AriaRole|undefined;}interfaceHTMLAttributes<HTMLParagraphElement,> {role?:AriaRole|undefined;}GridAdapterEventHandlers<RowBridgeId>.onInitializationError?: ((error: SheetwriteError) => void) | undefinedinterfaceGridAdapterEventHandlers<RowBridgeId> {onInitializationError?:((error:SheetwriteError) =>void) |undefined;}interfaceGridAdapterEventHandlers<RowBridgeId,> {onInitializationError?:| ((error:SheetwriteError,) =>void)|undefined;}Receives a WASM initialization failure while the adapter remains mounted.API reference →event: SheetwriteErrorlet event:SheetwriteErrorlet event:SheetwriteErrorAPI reference →