Читайте также:
|
|
ВВЕДЕНИЕ
Работа посвящена проблеме обработки документов разных форматов. В частности работе с форматами 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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Канальное кодирование | | | ВЫБОР МЕТОДА РЕШЕНИЯ |