ADF Copy Activity Performance Issue: Why Are .XLSM Files Slower Than .XLSX or CSV Files?

Yernaidu Siraparapu 125 Reputation points
2026-07-27T10:17:13.7266667+00:00

Hi Community,

We are experiencing a performance issue in Azure Data Factory Copy Activity when reading Excel files.

We noticed that copying data from .xlsm (macro-enabled Excel) files takes significantly longer compared to .xlsx or .csv files, even when the data volume is similar.

Has anyone encountered this behaviour? We would like to understand:

Why does ADF take more time to process .xlsm files?

Does ADF parse VBA macros, workbook metadata, or other Excel objects during the copy operation?

Are there any known limitations or performance considerations for .xlsm files?

What are the recommended best practices to improve copy performance when the source is an .xlsm file?

Azure Data Factory
Azure Data Factory

An Azure service for ingesting, preparing, and transforming data at scale.


2 answers

Sort by: Most helpful
  1. Senthil kumar 1,895 Reputation points
    2026-08-04T06:28:58.4633333+00:00

    Hi @Yernaidu Siraparapu

    .xlsx->Fast->Pure XML, no macros

    .csv->Very fast->Streamable text

    .xlsm->Slow->Contains VBA, binary OLE, macro streams

    Thanks.

    Was this answer helpful?

    0 comments No comments

  2. Christos Panagiotidis 3,546 Reputation points
    2026-07-27T11:34:23.55+00:00

    You're seeing slower runs for similarly sized .xlsm files than .xlsx or CSV. ADF's Excel format officially supports only .xls and .xlsx, not .xlsm. A successful .xlsm read therefore has no supported performance contract, and Microsoft does not document Copy Activity as executing or parsing VBA projects.

    Excel Copy Activity loads the workbook into memory before locating the configured worksheet and cells; CSV is simpler to parse. More DIUs or parallel copies may not improve a parser-bound run.

    Convert .xlsm upstream to .xlsx with macros removed, or preferably CSV or Parquet. Configure only the required worksheet and cell range, split large workbooks, and compare execution details from representative runs. For files over 100 MB, use Mapping Data Flow, which supports streaming Excel reads, or convert before Copy Activity. If native .xlsm ingestion is mandatory, open Microsoft Support or submit a product request; it is not a documented ADF Excel capability.

    Was this answer helpful?


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.