Visitar URL original
[Feature Request] Create async reader. · Issue #509 · ExcelDataReader/ExcelDataReader · GitHub
Skip to content

[Feature Request] Create async reader. #509

Open

Description

@inqb

Reading data from a stream is potentially a long running I/O bound operation.
Create IExcelDataReader.AsDataSetAsync (or ExcelReaderFactory.CreateReaderAsync, if the file is read at this point).

Activity

  1. added this to the 4.0 milestone on May 24, 2026
  2. appel1 commented on Oct 4, 2026

    @appel1
    Collaborator

    Async factory methods would be relatively straightforward to add: non-seekable streams could be buffered asynchronously before initializing the reader. Reader initialization and parsing would still be synchronous after buffering completes.

    A fully async reader would primarily benefit seekable, I/O-backed streams, such as files on disk or network shares. Non-seekable input would already be buffered in memory, so subsequent cell reading would be CPU-bound rather than waiting for source I/O.

    Both single-pass and two-pass modes could support async reads, including the initial scan. However, that would require substantial changes throughout initialization and parsing, and some ZIP operations would remain synchronous on our current target frameworks. The question is whether the benefit for file-backed reading justifies that complexity.

    Perhaps we should start with async factory methods and leave async reader methods and AsDataSetAsync for a separate proposal. That would address non-seekable download waits without a large parser refactor. Without async row reading and navigation,  AsDataSetAsync  would only wrap synchronous work rather than provide meaningful async I/O.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions