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

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

ExcelApplication


john_mag ©   (2005-06-07 12:28:00) 

Добрый полдень всем! После ваших советов модернизировал прогу.
Вроде все работает нормально, но дело в следующем: после каждого цикла i сохраняется файл с уникальным именем и с данными, ОДНАКО, файлы сораняются, но данные появляются только в первом файле, а остальные пусты! если кто-нибудь сможет дать дельный совет - буду очень признателен!


Anatoly Podgoretsky   (2005-06-07 13:47:00) [1]

john_mag ©   (07.06.05 13:18) [10]
Есть разные варианты
1. выбросить
2. продолжать использовать
3. третье


Digitman   (2005-06-07 13:30:00) [2]


> что мне делать с тем , что у меня есть??


трассировать пошагово


john_mag   (2005-06-07 13:18:00) [3]

нет предела совершенству! и нет совершенных программ (Windows,...) все Ваши пожелания я учту и исправлю, но что мне делать с тем , что у меня есть??


GreatMaster   (2005-06-07 13:17:00) [4]

> а разницы с моим кодом что-то я не вижу..
дык мой кусок работает - пишет в файлы разные данные, сравни со своим и найди ошипку


Digitman   (2005-06-07 13:13:00) [5]

зачем n раз создавать/уничтожать объект Excel.Application и раб.книгу, когда это можно сделать один раз, а в цикле только заполнять раб.лист и сохранять документ в файл ?


john_mag   (2005-06-07 13:12:00) [6]

GreatMaster   (07.06.05 13:07) [6]
А вот у тебя, if mass[4+cc2,i] НЕ РАВНО 1 then сам понимаешь...

это ведь только часть кода. идет проверка массива и если значение массива = 1 то в FileName в таблицу записываются данные из БД.

а разницы с моим кодом что-то я не вижу...


GreatMaster   (2005-06-07 13:07:00) [7]

вот упрощёный вариант твоего, он работает:


for j:= 1 to 10 do
  begin
    xlApp:= CreateOleObject('Excel.Application');
    xlApp.WorkBooks.Add;
    xlSheet:= xlApp.WorkBooks[1].WorkSheets[1];
    xlSheet.Name:= 'qwerty';
    for i:= 1 to 5 do
      begin
           begin
             xlSheet.Cells.Item[1,1].Value:= IntToStr(j);
             O:= 'C:\Apteka\Append\'+IntToStr(j)+'.xls';
             FileName:= O;
           end;
      end;
    xlApp.Workbooks[1].SaveAs(FileName);
    xlApp.Quit;
    xlApp := Unassigned;
    xlSheet := Unassigned;
  end;


А вот у тебя, if mass[4+cc2,i] НЕ РАВНО 1 then сам понимаешь...


john_mag   (2005-06-07 12:54:00) [8]

GreatMaster   (07.06.05 12:32) [3]

Щас мы все собирёмся и попытаемся угадать твой код...

зря ты так...
у меня код не отсылается... "удаленный сервер разорвал связь"

попробую еще раз...


john_mag   (2005-06-07 12:54:00) [9]

for j:= 1 to n do
   begin
     xlApp:= CreateOleObject('Excel.Application');
     xlApp.WorkBooks.Add;
     xlSheet:= xlApp.WorkBooks[1].WorkSheets[1];
     xlSheet.Name:= 'qwerty';
     for i:= 1 to m do
       begin
          if mass[4+cc2,i] = 1 then
            begin
              xlSheet.Cells.Item[cc+1,1].Value:= IntToStr(FF1.Number);
              O1:= FF6.NameFirm;
              O:= 'C:\Apteka\Append\'+O1+'.xls';
              FileName:= O;
              Inc(cc);
            end;
          Inc(c);
          Inc(cc1);
       end;
     cc1:= 0;
     Inc(cc2);
     Inc(cc2);
     xlApp.Workbooks[1].SaveAs(FileName);
     xlApp.Quit;
     xlApp := Unassigned;
     xlSheet := Unassigned;
   end;


GreatMaster   (2005-06-07 12:32:00) [10]

Щас мы все собирёмся и попытаемся угадать твой код...


-=XP=-   (2005-06-07 12:31:00) [11]

После ваших советов модернизировал прогу

Уважаемый Егений!

Я сохранил все Ваши вопросы и ответы на них. Но, к сожалению, архив куда-то пропал. Поэтому ответить на этот вопрос не могу, по причине абсолютного непонимания того, о чем идет речь.


Digitman   (2005-06-07 12:29:00) [12]

как и всегда, ошибка в 17-й строке


Наверх

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