Русские документы
RSS rusdoc.ru  Найти :
Последние поступления
  Hardware:
Видеоустройства
Системные платы
Процессоры
Мобильные устройства
Аудиосистема
Охлаждение системы
Накопители информации
КПК и ноутбуки
Телефоны и связь
Периферия
Система
Сети
Разные устройства
 
  Programming:
Web-разработка
Языки программирования
Технологии и теория
Разработка игр
Программная инженерия
 
  Software:
Операционные системы
Windows 7
Базы данных
Обзоры программ
Графика и дизайн
   
  Life:
Компьютерная жизнь
Разные материалы
   
Партнеры
Публикация
Правовая информация
Реклама на сайте
Обратная связь
Экспорт в RSS Экспорт в RSS2.0
   

Сравнение библиотек для работы с файлами Misrosoft Excel

Автор: Ольга Сосонных
Источник: Delphi Plus

Самым удобным, полным и хорошо документированным способом работы с файлами MS Excel является использование OLE Automation с Microsoft Excel. Единственный его недостаток - низкая скорость, поэтому данный способ неприемлем для больших объемов данных. Возникает необходимость использовать библиотеки, работающие с файлами напрямую, и скорость является основной характеристикой для данного класса продуктов.

В данной статье мы рассмотрим и сравним несколько библиотек для Borland Delphi, предоставляющих разработчикам возможность работать с файлами Microsoft Excel напрямую, без использования OLE Automation и самого Microsoft Excel.

Перечислим библиотеки, которые мы будем рассматривать, и приведем их краткое описание.

Название Описание Производитель и сайт WWW
TXLSFile v.3.1 Библиотека невизуальных классов для чтения и записи файлов MS Excel, дополнительно включает в себя набор визуальных компонентов для экспорта данных из db-aware компонентов в файлы MS Excel. SM Software
http://sm-software.com
XLSReadWriteII Библиотека визуальных и невизуальных классов для чтения и записи файлов MS Excel, дополнительно включает в себя компоненты для экспорта данных из dataset в файлы MS Excel и экспорта из файла MS Excel в HTML. Axolot
http://axolot.com
FlexCell v.2.6.7 Генератор отчетов, реализованный в форме визуальных компонентов. Содержит компоненты для формирования отчетов в файлы MS Excel на основе шаблонов, компоненты для работы с шаблонами. TMS Software
http://www.tmssoftware.com

Мы рассмотрим эти библиотеки как с точки зрения производительности, так и с точки зрения удобства использования для разработчика.

Удобство использования для разработчика

Для того чтобы оценить удобство использования продуктов для разработчика, мы рассмотрим следующие их параметры:

  • Архитектура
  • Наличие и качество документации

Архитектура

Библиотека Описание архитектуры
TXLSFile v.3.1 Набор классов для прямого доступа к файлам MS Excel. Простая иерархия объектов полностью избавляет пользователя от необходимости знать внутреннее устройство файла.
XLSReadWriteII Набор классов для прямого доступа к файлам MS Excel. Требуются дополнительные действия при записи файла. Например, перед записью ячеек требуется заранее знать все возможные форматы ячеек, которые будут использоваться (формат ячейки включает в себя цвет текста и фона, параметры шрифта, параметры границ, выравневание и т.д.), и добавить их в таблицу форматов. При записи ячеек для каждой ячейки требуется указать номер формата из таблицы форматов.
FlexCel v.2.6.7 FlexCel - это генератор отчетов, а не средство прямого доступа к файлам MS Excel. Для того чтобы записать данные в файл MS Excel, требуется предварительно создать файл-шаблон, задать в нем поля, и затем реализовать обработчики событий для компонентов.

Наличие и качество документации

Библиотека Сведения о документации
TXLSFile v.3.1 Один документ в формате CHM. Включает в себя краткое описание возможностей и справочник (Programmer's Reference) по классам библиотеки. Для каждого класса описаны его свойства и методы. Содержит примеры кода почти для каждого класса.
XLSReadWriteII Один документ в формате HLP. Включает в себя краткое описание возможностей и справочник (Programmer's Reference) по классам библиотеки. Для каждого класса описаны его свойства и методы. Не содержит примеров.
FlexCel v.2.6.7 Набор документов в формате MS Word (DOC):
  • Документ readme.doc содержит описание архитектуры FlexCel и краткое описание каждого объекта (без детального описания свойств и методов).
  • Документ "Using FlexCelReport" содержит подробное пошаговое руководство для разработчика, начинающего использовать FlexCel.

Производительность

Для сравнения производительности мы проведем несколько тестов записи файлов MS Excel.

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

При записи файла MS Excel библиотеки выполняют два вида действий - анализ и подготовка данных к записи и непосредственно запись в файл. Анализ данных, в частности, включает в себя создание таблицы строк.

Платформа для тестирования

CPU 1800 MHz
RAM 256 Mb
OS Windows 2000 Server

Тест 1 - большое число ячеек с одинаковым строковым значением

Заполним 50000 ячеек одинаковым строковым значением. Этот тест, показывает скорость записи данных в файл. Так как все ячейки содержат строковое одинаковое значение, то таблица строк здесь строится быстро. Время анализа и подготовки данных в данном случае не существенно влияет на результат.
Библиотека Средний результат
тестов
(в секундах)
TXLSFile v.3.1 1,031
XLSReadWriteII 0,531
FlexCel v.2.6.7 2,453

Тест 2 - большое число ячеек с различными случайными строковыми значениями

Заполним 50000 ячеек различными строками, состоящими из набора случайных символов, и имеющими длину от 10 до 60 символов. Этот тест показывает скорость построения таблицы строк. Чем больше различных текстовых значений в файле MS Excel, который нужно создать, тем важнее этот показатель.
Библиотека Средний результат
тестов
(в секундах)
TXLSFile v.3.1 2,033
XLSReadWriteII 125,130
FlexCel v.2.6.7 10,440

Тест 3 - большое число ячеек с различными случайными числами

Заполним 50000 ячеек различными случайными числами. Этот тест, как и Тест 1, показывает скорость записи данных в файл. Так как ячейки не содержат строковых значений, то таблица строк здесь будет пустая. Время анализа и подготовки данных в данном случае не существенно влияет на результат.
Библиотека Средний результат
тестов
(в секундах)
TXLSFile v.3.1 0,801
XLSReadWriteII 0,510
FlexCel v.2.6.7 2,070

Тест 4 - большое число ячеек с разнородными данными

Этот тест моделирует запись типичного файла MS Excel, содержащего и строковые значения, и числа. Возьмем задачу, которую выполняет демо-приложение StressTest из библиотеки FlexCel. Требуется провести экспорт 6000 строк, каждая из которых содержит 30 столбцов - итого 180000 ячеек. При этом в 2 столбцах будут содержаться различные строки, состоящие из набора случайных символов, и имеющие длину от 10 до 60 символов. В черырех других столбцах будут содержаться постоянные строковые значения. Остальные столбцы заполним случайными целыми числами.
Библиотека Средний результат
тестов
(в секундах)
TXLSFile v.3.1 3,77
XLSReadWriteII 8,98
FlexCel v.2.6.7 5,09

Желающие могут скачать исходные тексты тестовых приложений (8.59K). Для того, чтобы их скомпилировать и запустить, Вам дополнительно потребуется получить и установить демо-версии рассматриваемых библиотек на сайтах их производителей.

Copyright © 2004 Ольга Сосонных Специально для Delphi Plus

 

Реклама:


Последнее на сайте :
28.05.2015:
Нужен надежный хостинг с поддержкой php mysql?
Бесплатный конвертер для видео файлов
Немножко философский пост про то, как мы в глаза смотрели
Самые заметные проблемы облачных провайдеров за 2012 год
Распределительная сеть дата-центров мирового масштаба — сердце империи Google
Google выделяет миллионы долларов на новый конкурс по взлому Chrome
Top 5 раздражающих моментов в работе программиста
Глава мобильного подразделения Ubuntu Ричард Коллинз рассказал о планах
Обзор планшета Acer ICONIA W7. Windows 8 по-профессиональному
Как получить nano-sim для iPhone 5?



Реклама:





© Copyright 1998-2012 Александр Томов. All rights reserved.