![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Экспорт из 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 либо использовав соответсвующий провайдер данных