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

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

Не могу получить в Delphi методы листа Excel [Delphi, Windows]


L_Vic ©   (2005-07-08 11:23:00) 

Может кто  подскажет ?...
Используя СОМ-сервера достучался до ExcelApplication, с трудом удалось открыть документ Excel (метод Open, как оказалось имеет очень много параметров ;), нашел WorkSheets, а вот далее

WS:=...Worksheets.Item['Лист 1'] - возвращает IDispatch
Преобразования типа TExcelWorksheet(WS) выкидывают Exception.

Подскажите, плз., как работать с листами.


L_Vic   (2005-07-08 15:40:00) [1]

Огромное спасибо за подзказку.
Таким образом все работает.


AbrosimovA   (2005-07-08 12:42:00) [2]

Забыл указать:

Excel,WorkBook,WorkSheet1,WorkSheet2,Chart1:OleVariant;


AbrosimovA   (2005-07-08 12:40:00) [3]

Может этот пример поможет тебе:

//Соединение с Excel и настройка страницы
procedure TMainForm.ConnectExcel;
var cls_ExcelObject:string;
   Number: integer;
begin
cls_ExcelObject := 'Excel.Application';
//Определение установленной версии Excel
regData := TRegistry.Create;
regData.RootKey := HKEY_CLASSES_ROOT;
try
  if regData.OpenKey('\Excel.Application\CurVer', False) then
   begin
    cls_ExcelObject := regData.ReadString('');
    regData.CloseKey;
   end
finally
  regData.Free;
end;
 try
  Excel:=CreateOleObject(cls_ExcelObject);
  // Отключаем реакцию Excel на события, чтобы ускорить вывод информации
  Excel.Application.EnableEvents := false;
  if Not FileExists('data.xls') then
   begin
    Workbook :=Excel.WorkBooks.Add;
    WorkBook.SaveAs(ExtractFilePath(Application.ExeName)+'data.xls');
    WorkBook.Close;
   end;
  WorkBook:=Excel.WorkBooks.Open(ExtractFilePath(Application.ExeName)+'data.xls');
  Number:=1;
  WorkSheet1:=WorkBook.WorkSheets[Number];
  WorkSheet1.Name:='Данные';
  WorkSheet1.Activate;
  WorkSheet1.Cells.Select;
  WorkSheet1.Cells.Clear;
  WorkSheet1.Cells.ColumnWidth:=9;// Ширина столбца
  WorkSheet1.Cells.HorizontalAlignment:= xlCenter;//Выравнивание по правому краю
  Number:=2;
  WorkSheet2:=WorkBook.WorkSheets[Number];
  WorkSheet2.Name:='Графики';
  if Worksheet2.ChartObjects.Count>0 then
   Worksheet2.ChartObjects.Delete;
 finally
  WorkSheet1.Cells.Item[1,1].Borders.LineStyle:=xlDouble;//Бордюр- непрерывная линия
  WorkSheet1.Cells.Item[1,1].Borders.Weight:= xlMedium;//
  WorkSheet1.Cells.Item[1,1].Interior.Color:=RGB(212,212,212);//цвет фона
  WorkSheet1.Cells.Item[1,1].Select;
  Chart1:=Worksheet2.ChartObjects.Add(1, 1, 400, 250);
 end;
end;


Наверх

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