Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Вниз

Не могу получить в 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 вся ветка

Форум: "Corba";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
11-1128773253
homm
2005-10-08 16:07
2006.06.18
WM_DISPLAYCHANGE


2-1149154398
.ruslan
2006-06-01 13:33
2006.06.18
MonthCalendar1


2-1148957631
verybadbug
2006-05-30 06:53
2006.06.18
загрузка данных в webbrowser


6-1139739620
Alexandr
2006-02-12 13:20
2006.06.18
отправка HTML письма


2-1149253368
ttt_111
2006-06-02 17:02
2006.06.18
Работа с файлами.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский