Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Создать второй лист в екселевском документе


Автор: Lianamir 23.9.2007, 22:16
Необходимо в книге создать несколко листов с названиями, получается создать только один, что я неправильно делаю?

Код

procedure TDataModule2.Action1Execute(Sender: TObject);
var
XlApp,Sheet,Colum:Variant;
Indfex,I:Integer;
begin
XLApp:= CreateOleObject('Excel.Application');
XLApp.Visible:=true;
XLApp.Workbooks.Add(-4167);
XLApp.Workbooks[1].WorkSheets[1].Name:='Отчёт';// до этого моиента все нормально
        // далее как второй лист создать?

XLApp.Workbooks[1].Add.WorkSheets[2].Name:='Отчёт-2';


Добавлено @ 22:21
Пардон!!!   забыла поместить в тэги
Может есть у кого пример, экспорта в эксель.
В книге есть общее понятие, один пример и все, а как например картинку на лист вставить, как второй лист создать и тд....

Автор: kemiisto 23.9.2007, 23:14
По поводу кода - сначала создай лист, затем меняй его название:
Код

var
  XlApp: Variant;
begin
  XLApp := CreateOleObject('Excel.Application');
  XLApp.Visible := True;
  XLApp.Workbooks.Add(-4167);
  XLApp.Workbooks[1].Sheets[1].Name:='Отчёт';
  XLApp.Workbooks[1].Sheets.Add(After := XLApp.Workbooks[1].Sheets[XLApp.Workbooks[1].Sheets.Count]);
  XLApp.Workbooks[1].Sheets[2].Name:='Отчёт-2';
end;


Книжка, которую стоит почитать: Корняков В. Н. - Программирование документов и приложений MS Office в Delphi.

Да и еще есть такой прием, описанный много где. Открываешь Excel, совершаешь необходимые действия, при этом записываешь макрос. Затем переводишь код с VBA в свой проет Delphi.

Ну к примеру твой вопрос про картинку. Если записать макрос получим что-то типа:
Код

ActiveSheet.Pictures.Insert( _
        "C:\Program Files\Microsoft Office\MEDIA\CAGCAT10\j0090070.wmf").Select


На Delphi тоже самое выглядит так:
Код

XLApp.Workbooks[1].ActiveSheet.Pictures.Insert(
    'C:\Program Files\Microsoft Office\MEDIA\CAGCAT10\j0090070.wmf').Select;


Работает!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)