Главная страница
    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.45 MB
Время: 0.012 c
2-1148990281
Setor
2006-05-30 15:58
2006.06.18
Как связать переменную с опр. кнопкой, зная Name этой кнопки?


3-1145347315
Jet
2006-04-18 12:01
2006.06.18
Индексы idx + Delphi


15-1148261306
GoreStudent
2006-05-22 05:28
2006.06.18
access


1-1147463679
Kostromich
2006-05-12 23:54
2006.06.18
Анализ содержимого выбраной директории


3-1145887884
Квэнди
2006-04-24 18:11
2006.06.18
Dbexpress Delphi 2006





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский