Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Обзор известных решений

Читайте также:
  1. II.Обзор исследований, занимающихся диагностикой детей раннего возраста.
  2. V. ПРИНЯТИЕ РЕШЕНИЙ И ЗАВЕРШЕНИЕ БЕСЕДЫ
  3. Анализ обзорной рентгенограммы грудной клетки в прямой проекции
  4. Аналитический обзор аналогов объекта исследования
  5. Безадресный обзор
  6. БЕЗАДРЕСНЫЙ ОБЗОР
  7. В заключении приведем высказывания известных людей о системе.

ВВЕДЕНИЕ

Работа посвящена проблеме обработки документов разных форматов. В частности работе с форматами Excel и Paradox в системах баз данных.

Эта проблема часто возникает у фирм, где есть филиалы и некоторые из них хранят данные в формате Excel, а в главном офисе установлена система баз данных, которая хранит данные в формате Paradox. В этом случае возникает проблема: офисная система баз данных не читает формат Excel. Причем, начиная с версии Excel 2000 эта проблема не разрешима в принципе.

ОБЗОР ИЗВЕСТНЫХ РЕШЕНИЙ

Одно из решений данной проблемы было найдено в статье Елмановой [1]. Оно основано на применении контроллеров автоматизации MS Office. Контроллер автоматизации — это приложение, которое управляет СОМ-сервером. Он представляет собой любое приложение MS Office. В данном случае контроллер автоматизации — это MS Excel. Преобразование данных формата Excel к Paradox в этом случае в коде можно записать так [2]:


MSExcel, MSExcelBook, MSExcelSheet: Variant;

Cel1, i: Integer;

Cell2: String;

begin

MSExcel:= CreateOleObject('Excel.Application');

MSExcelBook:= MSExcel.WorkBooks.Open('C:\Test.xls');

MSExcelSheet:= MSExcelBook.WorkSheets[1];

 

for i:= 3 downto 1 do

begin

Cel1:= MSExcelSheet.Cells[i, 1].Value;

Cell2:= MSExcelSheet.Cells[i, 2].Value;

Table1.Insert;

Table1.Fields[0].AsInteger:= Cel1;

Table1.Fields[1].AsString:= Cell2;

Table1.Post;

end;

MSExcel.Quit;

 

У данного решения есть недостаток. Дело в том, что в случае если в таблице Excel колонок больше двух, то необходимо изменить код Delphi-приложения. Например, если в таблице Excel три колонки, то код будет выглядеть так:

 

MSExcel, MSExcelBook, MSExcelSheet: Variant;

Cel1, i: Integer;

Cell2: String;

Cell3: String;

begin

MSExcel:= CreateOleObject('Excel.Application');

MSExcelBook:= MSExcel.WorkBooks.Open('C:\Test.xls');

MSExcelSheet:= MSExcelBook.WorkSheets[1];

 

for i:= 3 downto 1 do

begin

Cel1:= MSExcelSheet.Cells[i, 1].Value;

Cell2:= MSExcelSheet.Cells[i, 2].Value;

Cell3:= MSExcelSheet.Cells[i, 3].Value;

Table1.Insert;

Table1.Fields[0].AsInteger:= Cel1;

Table1.Fields[1].AsString:= Cell2;

Table1.Fields[2].AsString:= Cell3;

Table1.Post;

end;

MSExcel.Quit;

 

Добавленный код изображен курсивом.

Изменение кода приложения для каждой таблицы Excel может привести к внесению ошибок в код. Кроме того, каждый раз необходимо перекомпилировать код. Для этого каждый раз необходимо обращаться к программисту за помощью.

Известно также решение, которое предложено Ольгой Сосонных [4]. Однако у него очень много возможностей, в которых нет необходимости в рассматриваемом случае. Кроме того, стоимость ее библиотек составляет 65 долларов. Мы решили не переплачивать за возможности, которые мы не будем использовать.

В результате анализа известных решений цель работы была сформулирована так: разработать приложение для преобразования данных формата Excel к формату Paradox с кодом программы независимым от структуры Excel-таблиц.


Дата добавления: 2015-10-21; просмотров: 50 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Канальное кодирование| ВЫБОР МЕТОДА РЕШЕНИЯ

mybiblioteka.su - 2015-2024 год. (0.006 сек.)