Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2014, 13:50   #1
ilikzver
Новичок
Джуниор
 
Регистрация: 16.01.2014
Сообщений: 2
Вопрос помощ в считавании через delphi Excel документ

Здравствуйте, у меня есть Excel документ с данным по филиалам банка, которые надо загрузить в базу через delphi, в Excele есть например 22 листа с данными для каждого филиала, как можно написать цикл чтобы delphi перезаписывал в grid каждый новый лист не закрывая Excel, в данный момент у меня только записывает один лист в базу
ilikzver вне форума Ответить с цитированием
Старый 16.01.2014, 13:52   #2
ilikzver
Новичок
Джуниор
 
Регистрация: 16.01.2014
Сообщений: 2
По умолчанию

вот скпирт

Код:
FUNCTION CB_1(NAME_F:STRING;DATE_STR:STRING):STRING;
var outfile: TextFile;
    i,j,COUNT:integer;
    textka, idfilial: string;
BEGIN
COUNT:=0;
FORM1.Label7.Caption:='экспорт в базу, ждите...';

idfilial := FORM1.grid.cells[0,1];
showmessage(idfilial);

TMyGrid(FORM1.Grid).DeleteRow(1);
TMyGrid(FORM1.Grid).DeleteRow(1);
TMyGrid(FORM1.Grid).DeleteRow(1);
TMyGrid(FORM1.Grid).DeleteRow(1);
TMyGrid(FORM1.Grid).DeleteColumn(0);
TMyGrid(FORM1.Grid).DeleteColumn(0);
                                                 //  ComboBox1.Text
AssignFile(outfile, 'T:\PROTOCOL\OUTFILE_1_CB.txt');
Rewrite(outfile);
writeln(outfile, '('+DATE_STR+' '+NAME_F);  //quotedstr()

for i:= 1 to 50 do
  begin
  FORM1.ProgressBar1.Position:=i*100 div 50;
  Application.ProcessMessages;
    for j:=0 to 11 do
    begin
    IF (FORM1.grid.cells[j,i] <> '') THEN
      BEGIN
        IF (FORM1.grid.cells[j,i] <> '0') THEN
          BEGIN
      //    IF (i >=10) AND (j = 9) THEN Continue;

              COUNT := COUNT +1;
              IF i<10 then begin
                            IF j<9 then textka:=('СБ01_'+'0'+IntToStr(i)+'0'+IntToStr(j+1))
                            else textka:=('СБ01_'+'0'+IntToStr(i)+IntToStr(j+1));
                           end;
              IF i>=10 then begin
                            IF j<9 then textka:=('СБ01_'+IntToStr(i)+'0'+IntToStr(j+1))
                            else textka:=('СБ01_'+IntToStr(i)+IntToStr(j+1));
                            end;
          FORM1.sqlmainselect.Close;
          FORM1.sqlmainselect.SQL.Clear;
          FORM1.sqlmainselect.SQL.Add('SELECT SP.ID FROM S_POKAZ SP WHERE SP.CODE_POKAZ = '''+textka+''''+' AND SP.DAT_END IS NULL AND SP.ID_FORM = 2575');
          FORM1.sqlmainselect.Active := True;
            // writeln(outfile,INTTOSTR(FORM1.sqlmainselect.Fields[0].Value));
            //  writeln(outfile,textka);
          writeln(outfile,INTTOSTR(FORM1.sqlmainselect.Fields[0].Value)+';'+FORM1.grid.cells[j,i]); //0;1 1;1
          END;

      END;

    end;

end;
writeln(outfile,')');
CloseFile(outfile);
FORM1.ProgressBar1.Position:=0;


FORM1.SP_CB_1.Parameters.ParamValues['DAT']:=datetostr(FORM1.otchetdate.Date);
FORM1.SP_CB_1.Parameters.ParamValues['FILENAME']:='OUTFILE_1_CB.txt';
FORM1.SP_CB_1.ExecProc;
FORM1.sqlmainselect.Close;
FORM1.sqlmainselect.SQL.Clear;
FORM1.sqlmainselect.SQL.Add('SELECT COUNT(*) FROM dis.det_dis DT WHERE DT.ID_FORM = 2575 AND DT.D_REPORT = TO_DATE('''+datetostr(FORM1.otchetdate.Date)+''',''DD.MM.YYYY'')');
FORM1.sqlmainselect.Active := True;
//FORM1.Label7.Caption:='запись в базу stat, ждите...';

  IF ComboBox1.Text = '1-СБ' THEN begin
                                    filename:= form1.OpenAccess.FileName;
                                    str1:= Pos('1',filename);
                                    str2:= length(filename);
                                    str3:= str2 - str1;
                                    strpos:= Copy(filename, str1, str3+1);
                                  //  showmessage(strpos);
                                    if strpos = '1-СБ.xls' then CB_1('1-СБ',datetostr(otchetdate.Date))
                                    else form1.Label7.Caption:='Неверный файл, либо не правильно выбрали форму';
                                   end;


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 16.01.2014 в 14:12.
ilikzver вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Диаграмма Excel через Delphi kta87 Microsoft Office Excel 2 27.08.2012 22:36
Работа с Excel через Delphi Умфарг Помощь студентам 1 11.05.2012 13:31
Форматирование Excel через Delphi VHomer Общие вопросы Delphi 2 22.02.2012 10:35
График в excel через delphi RoZi БД в Delphi 2 04.04.2009 09:53