OpenXML gets slower per row with larger files?
===

I'm building an app in VB.NET to read rows from an Excel file and populate them into a `DataTable`.

    dtRow = dataTable.NewRow()
    Dim startTime As DateTime = DateTime.Now

    dtRow("name") = suppliers.CellValue("A", rowCount)
    /* SNIP - just more string retrieval */
    dtRow("statistics") = suppliers.CellValue("P", rowCount)

    dataTable.Rows.Add(dtRow)

    Dim endTime As DateTime = DateTime.Now

    Debug.Print(String.Format("Time elapsed to retrieve '{0}': {1} ms", rowCount, (endTime - startTime).ToString("fffffff")))

`CellValue` is my own creation- but it is a small function and I've already measured its elapsed time. It's quite fast.

However, when I open a 10,000 row Excel file (filled with identical data), the time to process gets much slower.

**3,000 rows**:

    Time elapsed to retrieve '2': 0510051 ms
    Time elapsed to retrieve '3': 0500050 ms
    Time elapsed to retrieve '4': 0340034 ms
    Time elapsed to retrieve '5': 0350035 ms
    Time elapsed to retrieve '6': 0340034 ms
    Time elapsed to retrieve '7': 0340034 ms
    Time elapsed to retrieve '8': 0350035 ms

**6,000 rows**:

    Time elapsed to retrieve '2': 0710071 ms
    Time elapsed to retrieve '3': 0760076 ms
    Time elapsed to retrieve '4': 0620062 ms
    Time elapsed to retrieve '5': 0670067 ms
    Time elapsed to retrieve '6': 0750075 ms
    Time elapsed to retrieve '7': 0750075 ms
    Time elapsed to retrieve '8': 0700070 ms

**10,000 rows**:

    Time elapsed to retrieve '2': 0920092 ms
    Time elapsed to retrieve '3': 0920092 ms
    Time elapsed to retrieve '4': 1790179 ms
    Time elapsed to retrieve '5': 1810181 ms
    Time elapsed to retrieve '6': 1930193 ms
    Time elapsed to retrieve '7': 2240224 ms
    Time elapsed to retrieve '8': 1820182 ms

Why does this occur? Can I fix it?