Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.18;
Скачать: CL | DM;

Вниз

Не могу получить в Delphi методы листа Excel   Найти похожие ветки 

 
L_Vic ©   (2005-07-08 11:23) [0]

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

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

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


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

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

//Соединение с 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;


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

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

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


 
L_Vic ©   (2005-07-08 15:40) [3]

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



Страницы: 1 вся ветка

Текущий архив: 2006.06.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
15-1148306865
ПЛОВ
2006-05-22 18:07
2006.06.18
Знатокам мобильной связи (Украина)


1-1145037989
Wog
2006-04-14 22:06
2006.06.18
Кнопка произвольной формы


1-1147103040
Андрей Молчанов
2006-05-08 19:44
2006.06.18
Управление тултипами TTreeView


1-1147537027
varfolomey
2006-05-13 20:17
2006.06.18
Баг с клавой


8-1137193431
rd
2006-01-14 02:03
2006.06.18
disparity map