Table of Contents

Class XlsbWorkbookWriter

Namespace
ExcelReader.Core.Writer.Xlsb
Assembly
ExcelReader.Core.dll

Writes an .xlsb workbook (BIFF12 binary format) to a stream, one sheet at a time.

public sealed class XlsbWorkbookWriter : IWorkbookWriter<XlsbSheetWriter>, IDisposable, IAsyncDisposable
Inheritance
XlsbWorkbookWriter
Implements
Inherited Members
Extension Methods

Methods

AddSheet(string)

Begins a new sheet named name and returns its writer. Only one sheet may be open (started and not yet ended) at a time; the previous sheet's writer must be ended and disposed before starting the next one.

public XlsbSheetWriter AddSheet(string name)

Parameters

name string

The sheet's name, shown to Excel; must be unique (ignoring case) within the workbook and meet Excel's sheet-name restrictions (1-31 characters, no : \ / ? * [ ]).

Returns

XlsbSheetWriter

The writer for the new sheet.

AddSheet(string, ExcelSheetVisibility)

Begins a new sheet named name with the given tab-bar visibility, and returns its writer. Same contract as AddSheet(string) otherwise.

public XlsbSheetWriter AddSheet(string name, ExcelSheetVisibility visibility)

Parameters

name string

The sheet's name, shown to Excel; must be unique (ignoring case) within the workbook and meet Excel's sheet-name restrictions (1-31 characters, no : \ / ? * [ ]).

visibility ExcelSheetVisibility

Whether the sheet is shown in the workbook's tab bar. A workbook whose sheets are all hidden is rejected when it is ended, since Excel reports such a file as damaged.

Returns

XlsbSheetWriter

The writer for the new sheet.

Exceptions

ArgumentOutOfRangeException

visibility is not a defined value.

AddStyle(CellStyle)

Registers style and returns its index, reusing the index of an already-registered style with the same value. Index 0 is always the general/default style; index 1 is always the builtin date style every date cell already uses.

public int AddStyle(CellStyle style)

Parameters

style CellStyle

The number format/bold/italic combination to register.

Returns

int

The style's index, for use with SetColumnStyle(int, int) and StartRowAsync(int, CancellationToken).

Exceptions

ArgumentException

The style's number format is longer than 255 characters.

ExcelLimitExceededException

The workbook already has 200 distinct number formats, the most Excel opens.

Create(Stream, bool, XlsbWriterOptions?)

Creates a writer that produces an .xlsb archive on stream.

public static XlsbWorkbookWriter Create(Stream stream, bool leaveOpen = false, XlsbWriterOptions? options = null)

Parameters

stream Stream

The destination stream; must be writable.

leaveOpen bool

If true, stream is not disposed when the writer is disposed.

options XlsbWriterOptions

Date system, compression, shared-string and background-deflate settings. Defaults to Default.

Returns

XlsbWorkbookWriter

Exceptions

ArgumentNullException

stream is null.

Dispose()

Synchronous counterpart to DisposeAsync(), for native/unmanaged callers whose ABI is synchronous.

public void Dispose()

DisposeAsync()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.

public ValueTask DisposeAsync()

Returns

ValueTask

A task that represents the asynchronous dispose operation.

End()

Synchronous counterpart to EndAsync(CancellationToken), for native/unmanaged callers whose ABI is synchronous.

public void End()

EndAsync(CancellationToken)

Finalizes the workbook, writing any trailing structure (e.g. the workbook manifest/index) so the destination stream contains a complete, readable file. No further sheets may be added afterward. Idempotent with disposal: disposing an already-ended workbook is a no-op beyond releasing resources. A call that fails part-way still ends the workbook: it cannot be retried, and disposing it only releases the stream. A token already canceled on entry leaves the workbook untouched.

public ValueTask EndAsync(CancellationToken ct = default)

Parameters

ct CancellationToken

A token to cancel the operation.

Returns

ValueTask

Flush()

Synchronous counterpart to FlushAsync(CancellationToken), for native/unmanaged callers whose ABI is synchronous.

public void Flush()

FlushAsync(CancellationToken)

Flushes any buffered output for the workbook and its current sheet to the destination stream.

public ValueTask FlushAsync(CancellationToken ct = default)

Parameters

ct CancellationToken

A token to cancel the operation.

Returns

ValueTask