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

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

Excel (Office2003) - как писать в разных листах? [D7, WinXP]


tytus ©   (2008-01-25 09:42:00) 

Доброго дня мастера. Не получается записать данные в разные листы книги ексел-я. Все время пишется в один. Вот как делаю (через Excel - компонент):
functionTMainFm.ConvertToExcel(AFileName: string;ARepID:integer;
 ARepName: string;ARepDate:string;APhoneCode: string):boolean;
var
Sheet:variant;
FName: string;
begin
FName:='Некое имя';
try
 Excel1.Connect;
except
  onE:EOLEException do
 begin
   WriteToLog('*** Не удалось подключиться к MS Excel.'+#13#10+E.Message);
   Result:=false;
   Exit;
  end;
end;
if FileExists(FName)then
  begin
  try
 Excel1.Workbooks.Open(FName,EmptyParam,false,EmptyParam,EmptyParam,    EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,    EmptyParam,false,false,EmptyParam,0);
  except
    onE:EOLEException do
    begin
     WriteToLog('*** Не удалось открыть файл:'+FName);
     WriteToLog('    '+E.Message);
     Result:=false;
     Exit;
    end;
  end;
end else begin
 Excel1.SheetsInNewWorkbook[0]:=4;
 Excel1.Workbooks.Add(EmptyParam,0);
end;
Sheet:=Excel1.Workbooks.Item[1].Worksheets[ARepID];
Sheet.Name:=Отчет '+IntToStr(ARepID);
Вот и не получается выбирать разные листы...
Подскажите как правильно сие делать.


DiamondShark   (2008-01-25 11:54:00) [1]


> tytus   (25.01.08 10:08) [1]
> Палучилось. (вычитал из хелпа WBAXL10.CHM)
> Sheet:=Excel1.Workbooks.Item[1].Worksheets[ARepID];
> Sheet.Activate; !!!!

Бред.

procedure TForm1.Button1Click(Sender: TObject);
var
 xlApp: Variant;
 xlWkb: Variant;
 xlSheet: Variant;
 i: integer;
begin
 xlApp := CreateOleObject('Excel.Application');

 xlApp.SheetsInNewWorkbook := 4;
 xlWkb := xlApp.Workbooks.Add();
 for i := 1 to 4 do
   begin
     xlSheet := xlWkb.Sheets[i];
     xlSheet.Name := 'Hello ' + IntToStr(i);
     xlSheet.Range['A1'].Value := 'Hello, world!';
     xlSheet.Range['A2'].Value := i;
   end;

 xlApp.Visible := true;
end;

Почему у меня без всяких Activate пишется в нужные листы?


umbra   (2008-01-25 11:28:00) [2]


> как сохранять книгу, чтобы не появлялось окно с предупреждением
> (Такой файл уже существует....)?

Excel1.DisplayAlerts := False;


tytus   (2008-01-25 10:31:00) [3]

Удалено модератором
Примечание: Обсуждение модерирования


tytus   (2008-01-25 10:08:00) [4]

Палучилось. (вычитал из хелпа WBAXL10.CHM)
Sheet:=Excel1.Workbooks.Item[1].Worksheets[ARepID];
Sheet.Activate;!!!!

Но теперь другой вапрос - как сохранять книгу, чтобы не появлялось окно с предупреждением (Такой файл уже существует....)?


Наверх

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