По просьбе жены
От: Аноним  
Дата: 08.04.04 06:07
Оценка: :))) :))
Я в Делфи вообще ни буб-буб. Но вот жене понадобилось. ПРиведите пожалуйста код, делающий следующее (предположим обработчик нажатия на кнопку):
-сначала открывает Excel
-записывает в ячейку число
-сохраняет файл под каким-то именем
-закрывает Excel.
Предложения КАК это сделать не надо. Просто код
Заранее спасибо
Re: По просьбе жены
От: _MarlboroMan_ Россия  
Дата: 08.04.04 06:13
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Я в Делфи вообще ни буб-буб. Но вот жене понадобилось. ПРиведите пожалуйста код, делающий следующее (предположим обработчик нажатия на кнопку):

А>-сначала открывает Excel
А>-записывает в ячейку число
А>-сохраняет файл под каким-то именем
А>-закрывает Excel.
А>Предложения КАК это сделать не надо. Просто код
А>Заранее спасибо

поиск по этому форуму тебе поможет. ненадо напрягать народ, даже по просьбе жены
... << RSDN@Home 1.1.3 beta 1 >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re: По просьбе жены
От: curt_russel  
Дата: 08.04.04 06:45
Оценка:
Техт такой:


  Variant XL, v0,v1,v2;
  XL = CreateOleObject("Excel.Application.9");
  XL.OlePropertySet("Visible",true);
  v0 = XL.OlePropertyGet("WorkBooks");
  v0.OleProcedure("Add");
  v1 = v0.OlePropertyGet("Item",1);
  v0 = v1.OlePropertyGet("Worksheets");
  v0.OlePropertyGet("Item",1).OlePropertySet("Name","Бухгалтерия желтая");
  v0.OlePropertyGet("Item",2).OlePropertySet("Name","Бухгалтерия красная");
  for(int j=1; j<3; j++) {
    v1 = v0.OlePropertyGet("Item",j);
    for(int i=1; i<11; i++) {
      v1.OlePropertyGet("Cells").OlePropertyGet("Item",i,1).OlePropertySet("Value",i);
      v1.OlePropertyGet("Cells").OlePropertyGet("Item",i,2).OlePropertySet("Value",i*5);
      v2 = v1.OlePropertyGet("Cells").OlePropertyGet("Item",i,2);
      v2.OlePropertyGet("Font").OlePropertySet("Color",clBlue);
      v2.OlePropertyGet("Font").OlePropertySet("Bold",true);
      v2.OlePropertyGet("Interior").OlePropertySet("ColorIndex",9-3*j);
    }
    v1.OlePropertyGet("Cells").OlePropertyGet("Item",11,1).OlePropertySet("Value","=СУММ(A1:A10)");
    v1.OlePropertyGet("Cells").OlePropertyGet("Item",11,2).OlePropertySet("Value","=СУММ(B1:B10)");
  }
  //  отключить диагностику при закрытии сервера
  XL.OlePropertySet("DisplayAlerts",false);
  XL.OlePropertyGet("Workbooks").OlePropertyGet("Item",1).OleProcedure("SaveAs","test.xls");
  XL.OleProcedure("Quit");
Re[2]: По просьбе жены
От: curt_russel  
Дата: 08.04.04 06:47
Оценка:
Только пардон, это код на Builder. Пусть она сама перепишет его на паскале — это не трудно.
Re[2]: По просьбе жены
От: Аноним  
Дата: 08.04.04 06:48
Оценка:
Здравствуйте, curt_russel, Вы писали:

Спасибо большое, только одна щтучка загадочна.
"Excel.Application.9"
что это за волшебная девятка.
Есть предположение что версия. А если другая версия на машине?
Re[3]: По просьбе жены
От: curt_russel  
Дата: 08.04.04 06:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, curt_russel, Вы писали:


А>Спасибо большое, только одна щтучка загадочна.

А>"Excel.Application.9"
А>что это за волшебная девятка.
А>Есть предположение что версия. А если другая версия на машине?

А это надо в реестре смотреть, как там прописано.
Попробуй так написать, посмотри что получится.
Re[3]: По просьбе жены
От: Romkin  
Дата: 08.04.04 07:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, curt_russel, Вы писали:


А>Спасибо большое, только одна щтучка загадочна.

А>"Excel.Application.9"
А>что это за волшебная девятка.
А>Есть предположение что версия. А если другая версия на машине?

Пиши 'Excel.Application' — прокатит Версию указывают, если нужна именно она
Re[3]: По просьбе жены
От: _MarlboroMan_ Россия  
Дата: 08.04.04 07:05
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, curt_russel, Вы писали:


А>Спасибо большое, только одна щтучка загадочна.

А>"Excel.Application.9"
А>что это за волшебная девятка.
А>Есть предположение что версия. А если другая версия на машине?


это версия офиса
... << RSDN@Home 1.1.3 beta 1 >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[4]: По просьбе жены
От: Аноним  
Дата: 08.04.04 07:11
Оценка:
Здравствуйте, curt_russel, Вы писали:

_>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, curt_russel, Вы писали:


А>>Спасибо большое, только одна щтучка загадочна.

А>>"Excel.Application.9"
А>>что это за волшебная девятка.
А>>Есть предположение что версия. А если другая версия на машине?

_>А это надо в реестре смотреть, как там прописано.

_>Попробуй так написать, посмотри что получится.

Ок, спасибо
Re[2]: По просьбе жены
От: Shadowspan Россия  
Дата: 08.04.04 10:02
Оценка:
Здравствуйте, curt_russel, Вы писали:
Конвертирую в Delphi (к вопросу о простое переписывания):

var
  XL, v0, v1, v2 : Variant;
    i, j : Integer;
begin
  XL := CreateOleObject('Excel.Application');
  XL.Visible := true;
  v1 :=   XL.WorkBooks.Add;
    v0 := v1.Worksheets;
    v0.Item[1].Name := 'Бухгалтерия желтая';
    v0.Item[2].Name := 'Бухгалтерия красная';
    for j:=1 to 2 do
      begin
          v1 := v0.Item[j];
            for i:= 1 to 10 do
              begin
                  v1.Cells[i,1].Value := i;
                  v1.Cells[i,2].Value := i*5;
                  v2 := v1.Cells[i,2];
                  v2.Font.Color := clBlue;
                  v2.Font.Bold := true;
                  v2.Interior.ColorIndex := 9 - 3*j;
                end;
            v1.Cells[11,1].Value := '=СУММ(A1:A10)';
            v1.Cells[11,2].Value := '=СУММ(B1:B10)';
        end;
    XL.DisplayAlerts := false;
    XL.Workbooks[1].SaveAs('test.xls');
    XL.Quit;
end
;

Паскаль поддерживает поздне связывание на уровне компилятораю.
... << RSDN@Home 1.1.0 stable >>
Re[3]: По просьбе жены
От: Contact Россия http://www.lact.ru
Дата: 08.04.04 19:25
Оценка:
S>Паскаль поддерживает поздне связывание на уровне компилятораю.
Прикольно.
С уважением,
Павел Васёв
-------------
LineAct &mdash; автоматическое создание Вашего сайта под ключ: дизайн, хостинг, online cms, хранилище файлов &mdash; стоит всего 6000 р...
Re: По просьбе жены
От: Arioch  
Дата: 09.04.04 05:04
Оценка:
Hello, !

> Предложения КАК это сделать не надо. Просто код


Пошли свою жену на www.DelphiKindom.ru — там несколько статей как раз об
этом.

Кстати, самый простой способ открыть Ёксель — кинуть с палитры
ЁксельАппликейшн на форму, и вызвать ему .Connect;
--
[tip] Fix for Outlook Express quoting: http://Arioch.nm.ru/FL/Fidolook_SL.png
E-mail is faked because of spam. the_Arioch@NM.falseDomain.ru
Posted via RSDN NNTP Server 1.8 beta
Re[2]: По просьбе жены
От: akasoft Россия  
Дата: 09.04.04 16:07
Оценка: :)
Здравствуйте, Arioch, Вы писали:

A>Пошли свою жену на www.DelphiKindom.ru — там несколько статей как раз об

A>этом.

Жену посылать не надо. Её надо сводить. Только там у них главная — Королева, жене может понравится...
... << RSDN@Home 1.1.3 beta 2 >>
Re[3]: По просьбе жены
От: Arioch  
Дата: 09.04.04 23:19
Оценка:
Hello, akasoft!

a> Жену посылать не надо. Её надо сводить. Только там у них главная -

a> Королева, жене может понравится...

Это что, новый вариант анекдота про программиста ?

Пришла я с работы, а муж с Королевой, и глаза у обоиз хииитрые-хитрые!
Я в Интернет — точно, статью, которую вчера не дочитала — спрятали, убрали с
сайта (хнык, хнык, хнык...)

--
[tip] Fix for Outlook Express quoting: http://Arioch.nm.ru/FL/Fidolook_SL.png
E-mail is faked because of spam. the_Arioch@NM.falseDomain.ru
Posted via RSDN NNTP Server 1.8 beta
Re: По просьбе жены
От: Francio Россия  
Дата: 12.04.04 04:20
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я в Делфи вообще ни буб-буб. Но вот жене понадобилось. ПРиведите пожалуйста код, делающий следующее (предположим обработчик нажатия на кнопку):

А>-сначала открывает Excel
А>-записывает в ячейку число
А>-сохраняет файл под каким-то именем
А>-закрывает Excel.
А>Предложения КАК это сделать не надо. Просто код
А>Заранее спасибо



procedure TForm1.Button4Click(Sender: TObject);
var
v: variant;
begin
   v := CreateOleObject('Excel.Application'); // Запуск Excel
   v.WorkBooks.Add(); //Создаем новую рабочую книгу
   v.Cells[3,3]:='Тест'; //Записываем в ечейку
   v.ActiveWorkBook.SaveAs('c:\temp\1.xls'); сохраняем рабочую книку в файл
   v.Quit; //закрываем excel


А вообще-то все это описано в VisualBasic (Запуск Excel и нажать Alt-F11 и там в справке есть все ^-))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.