Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Экспорт из Excel в dbf [Delphi]


Uran ©   (2005-02-21 11:22:00) 

Мастера, подскажите пожалуйста,  как осуществить экспорт содержимого каждого листа Excelевского файла в dbf файлы?
Заранее благодарен.


Uran   (2005-02-24 14:19:00) [1]

Спасибо большое! :)) то что нужно! :))))


rosl   (2005-02-24 01:54:00) [2]

код у меня большой, выбери то что нужно:
var
 Excel: variant;
 i, s, p, v, c, vi, cl, os: word;
 SelfDir, shet, podr, ved, c_st, vr, clas, ost, path: string;
 x :  Integer;
begin
dm.OpenDialog.Filter:='Файлы проверки (БР)|*.xls';
dm.OpenDialog.FileName:='';
Form_progress.Caption:='Загрузка данных для проверки';
path := getcurrentdir;
SelfDir := options.Edit_path_baza.Text;
dm.Q_proverka.SQL[1]:='from ' + '''' + SelfDir + '\baza\main1.dbf' + '''' + ' b, ' + '''' + SelfDir + '\baza\main4.dbf' + '''' + ' p, ' + '''' + SelfDir + '\sprav\name.dbf' + '''' + ' n';
dm.T_proverka.TableName:=SelfDir + '\baza\main4.dbf';

dm.Client_proverka.Active:=false;
dm.T_proverka.Active:=false;
CopyFile(PChar(SelfDir + '\baza\temp.dbf'),PChar(SelfDir + '\baza\main4.dbf'),False);
dm.OpenDialog.Execute;
SetCurrentDir(path);
if dm.OpenDialog.FileName = '' then
exit;
Form_progress.ProgressBar.BarColor:=clBlue;
dm.T_proverka.DatabaseName:='';
dm.T_proverka.TableName:=SelfDir + '\baza\main4.dbf';
dm.T_proverka.Active:=true;
Form_progress.Show;
Excel := CreateOleObject('Excel.Application');
Excel.Workbooks.Open(dm.OpenDialog.FileName);
//Excel.visable:=true;
Excel.ActiveCell.SpecialCells(xlLastCell).Select;
x := Excel.ActiveCell.Row - 3;
Excel.Cells.Select;
Excel.Cells.NumberFormat:='@';
report_perefin.Label_period.Caption:='(Использованы данные для проверки  ' + Excel.Sheets[1].Cells[5,1].Text + ').';
if (Excel.Sheets[1].Cells[9,1].Text <> 'Корр:Наименование') and
(Excel.Sheets[1].Cells[9,2].Text <> 'Счет') and
(Excel.Sheets[1].Cells[9,3].Text <> 'БК:Подр') and
(Excel.Sheets[1].Cells[9,4].Text <> 'БК:Вед') and
(Excel.Sheets[1].Cells[4,1].Text <> 'БР') and
(Excel.Sheets[1].Cells[x - 2,1].Text <> 'ВСЕГО:') then
begin
Form_progress.Close;
showmessage('Выбранный Вами файл не является файлом проверки или содержит не верную структуру!');
Excel.DisplayAlerts := false;
Excel.Workbooks.close;
exit;
end;
Form_progress.ProgressBar.Max:=x-10;
      for i := 10 to x do
      for s := 2 to 2 do
      for p := 3 to 3 do
      for v := 4 to 4 do
      for c := 5 to 5 do
      for vi := 6 to 6 do
      for cl := 7 to 7 do
      for os := 12 to 12 do
    begin
      shet  := Excel.Sheets[1].Cells[i,s].Text;
      podr  := Excel.Sheets[1].Cells[i,p].Text;
      ved   := Excel.Sheets[1].Cells[i,v].Text;
      c_st  := Excel.Sheets[1].Cells[i,c].Text;
      vr    := Excel.Sheets[1].Cells[i,vi].Text;
      clas  := Excel.Sheets[1].Cells[i,cl].Text;
      ost   := Excel.Sheets[1].Cells[i,os].Text;

      dm.T_proverka.Insert;
      dm.T_proverka.FieldByName('col01').AsString:=shet;
      dm.T_proverka.FieldByName('col02').AsString:=podr;
      dm.T_proverka.FieldByName('col03').AsString:=ved;
      dm.T_proverka.FieldByName('col04').AsString:=c_st;
      dm.T_proverka.FieldByName('col05').AsString:=vr;
      dm.T_proverka.FieldByName('col06').AsString:=clas;
      dm.T_proverka.FieldByName('col07').AsCurrency:=strtocurr(ost);
      dm.T_proverka.Next;
      Form_progress.ProgressBar.Position:=Form_progress.ProgressBar.Position + 1;
    end;
      Excel.DisplayAlerts := false;
      Excel.Workbooks.close;
      Form_progress.ProgressBar.Position:=0;
      Form_progress.close;


YurikGL   (2005-02-22 21:40:00) [3]

Либо построчно через OLE либо использовав соответсвующий провайдер данных


Наверх

Титульная страница Поиск, карта сайта Написать письмо