Форум: "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.01 c