Загрузка данных из табличного документа (оптимизация для работы с MS Excel)


Оптимизация обработки с диска ИТС "Загрузка данных из табличного документа" с целью ускорения загрузки в табличный документ файла MS Excel

В последнее время что-то все чаще приходится пользоваться этой обработкой. И постоянно напрягает, что файл Excel загружается в табличный документ чрезвычайно долго (иногда успеваю два раза сходить покурить :).

В представленной обработке немного изменен механизм чтения данных из файла MS Excel.

Основой для такой оптимизации послужила публикация "Быстрая функция чтения данных с листа Excel" от wildhog.

В результате файл, содержащий 15900 строк и 6 колонок вместо 5 минут загружается 8 секунд.

Кроме ускорения загрузки есть еще одно принципиальное различие.

Стандартный алгоритм получает данные, используя свойство ячейки Text. Оптимизированный алгоритм получает данные, используя свойство Value. Основное их различие в том, что свойство Text содержит отформатированные данные. Вот выдержка из справки по VBA MS Excel:


This example illustrates the difference between the Text and Value properties of cells that contain formatted numbers.

Visual Basic for Applications

Set c = Worksheets("Sheet1").Range("B14")
c.Value = 1198.3
c.NumberFormat = "$#,##0_);($#,##0)"
MsgBox c.Value
MsgBox c.Text


Так что, по большому счету, разницы практически никакой.

На всякий случай в обработке оставлена возможность загружать файл стандартным способом.

Файлы обработки:

-