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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2011, 04:09   #1
Fiery Fox
Пользователь
 
Регистрация: 03.02.2010
Сообщений: 28
По умолчанию [Delphi+Excel] Пояснение кода

Код:
uses
  ComObj;

const
  EXCEL_FILE_EXT = '.xls';

function TForm10.GetExcelFileName: String;
begin
  Result := ExtractFilePath(Application.ExeName) + 'exel'+inttostr(colv);

  if LowerCase(ExtractFileExt(Result)) <> EXCEL_FILE_EXT then
    Result := Result + EXCEL_FILE_EXT;
end;
procedure TForm10.Button2Click(Sender: TObject);

var
 ExcelApp, Sheet: variant;
 Col, Row: Word;
begin
inc(colv);
  ExcelApp := CreateOleObject('Excel.Application');
  try
    ExcelApp.Visible := false;

    ExcelApp.Workbooks.Add;
    Sheet := ExcelApp.ActiveWorkbook.Worksheets[1];

    for Col := 0 to StringGrid1.ColCount - 1 do
      for Row := 0 to StringGrid1.RowCount - 1 do
        Sheet.Cells[Row + 1, Col + 1] := StringGrid1.Cells[Col, Row];

    ExcelApp.ActiveWorkbook.SaveAs(GetExcelFileName);

    ShowMessage('Записано');
  finally
    ExcelApp.Application.Quit;
    ExcelApp := unassigned;
    Sheet := Unassigned;
  end;
end;
Код взят от сюда:
http://programmersforum.ru/showthread.php?t=57907

Можете пожалуйста мне его пояснить?
Откомментировать что делается какой строкой.
Fiery Fox вне форума Ответить с цитированием
Старый 05.01.2011, 10:51   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а что, Вам вообще ни одна строчка не понятна?!

так может быть, стоит погуглить
по CreateOleObject('Excel.Application' );
или по Работа с Excel в Delphi через OLE

код же достаточно прост.
при каждом нажатии на Button2 содержимое StringGrid1
записывается в Excel файл с именем exelNN.xls (вместо NN цифры - порядковый номер нажатия на кнопку).

p.s. ну и, разумеется, работать этот код будет только на Windows с установленным MS Excel. Иначе будет Access Violation...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.01.2011, 10:55   #3
Fiery Fox
Пользователь
 
Регистрация: 03.02.2010
Сообщений: 28
По умолчанию

Я понимаю примерно половину кода, потому что сам чуть чуть его дописывал)
Просто не работал с оле обьектами до этого.
Fiery Fox вне форума Ответить с цитированием
Старый 05.01.2011, 11:21   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Я понимаю примерно половину кода, потому что сам чуть чуть его дописывал)
ну и ?... какие именно строчки непонятны?!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Частичное пояснение к коду artemavd Общие вопросы C/C++ 1 18.11.2010 18:16
пояснение строк Katte Общие вопросы C/C++ 3 02.06.2010 20:18
пояснение программы sllh_111 Помощь студентам 0 19.02.2010 19:44
VBA Excel: cоздать 4 кода к блок-схемам lena-88 Помощь студентам 1 13.02.2010 20:13
при работе с Excel не работает кусок кода Tirendus Общие вопросы Delphi 4 23.07.2009 13:13