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

Вниз

Сводная таблица(Excel)   Найти похожие ветки 

 
beg   (2005-06-22 23:50) [0]

Delphi 7 & Excel 2003
Хочу сгенерить сводную таблицу в Excel"е. Т.К. в Delphi нет документации по компоненту ExcellApplication
nj запустил запись макроса и записал действия чтобы посмотреть код на VBA. Взял оттуда весь код и
переписал на Delphi. Вот он сам:

procedure TForm1.Button1Click(Sender: TObject);
var ISheet: ExcelWorkSheet;
   PVTable:PivotTable;
   XLApp:Excelworkbook;
   IRange: ExcelRange;
   i, j: integer;
begin
   ISheet:= ExcelApplication1.Workbooks[1].Worksheets[1]as Excelworksheet;
   XLApp := ExcelApplication1.Workbooks[1];
   XLApp.PivotCaches.Add(xlDatabase,"Отчет!R1C2:R218C5").CreatePivotTable("","СводнаяТаблица1",EmptyParam,xlPivotTableVersi on10);
   // Здесь возникает ошибка
   ISheet.PivotTableWizard(xlDatabase,ISheet.Range["B1","E218"],ISheet.Cells.Item[3,1],"СводнаяТаблица1",true,true,true,tru e,false,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0,false,EmptyParam);

   ISheet.Range["A3",EmptyParam].Select;
   XLApp.ShowPivotTableFieldList := True;
   PVTable:=ISheet.PivotTables("СводнаяТаблица2",EmptyParam) as PivotTable;
   PVTable.DataPivotField.PivotItems("CITY").Orientation:=xlColumnField;
   PVTable.DataPivotField.PivotItems("CITY").Position:=1;

   PVTable:=ISheet.PivotTables("СводнаяТаблица2",EmptyParam) as PivotTable;
   PVTable.DataPivotField.PivotItems("TYPE_OBJECT").Orientation:=xlColumnField;
   PVTable.DataPivotField.PivotItems("TYPE_OBJECT").Position:=1;
   PVTable.AddDataField(PVTable.DataPivotField.PivotItems("SUMMA"),"Количество по полю SUMMA", xlCount);
   PVTable.DataPivotField.PivotItems("TYPE_OBJECT").Function_:=xlSum;

   PVTable.ColumnGrand:=False;
   PVTable.RowGrand:=False;

   IRange := nil;
   ISheet := nil;
end;

Но возникает ошибка со свойством PivotTableWizard. Вот сообщение:
Could not variant of type(error) into type(integer)
Кажется из-зи 2-го параметра PivotTableWizard. Так и не разобрался с этим параметром
В чем проблема???


 
YurikGL ©   (2005-06-23 07:21) [1]


> Could not variant of type(error) into type(integer)

Если правильно понял, то где-то требуется параметр типа integer, а ты суешь другой тип.

Кинь на форму TExcelWorkSheet, набери

TExcelWorkShee.PivotTableWizard и в сплывающей подсказке посмотри типы параметров.


 
beg   (2005-06-23 09:07) [2]

Да нет там, все параметры типа OleVariant


 
YurikGL ©   (2005-06-23 12:35) [3]

Все же попробуй
  ISheet.PivotTableWizard(xlDatabase,ISheet.Range["B1","E218"],ISheet.Cells.Item[3,1],"СводнаяТаблица1",true,true,true,tru  e,false,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0,false,1);



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

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

Наверх




Память: 0.47 MB
Время: 0.045 c
2-1146207157
gerakla
2006-04-28 10:52
2006.05.21
Помогите мну


15-1145264574
fast2
2006-04-17 13:02
2006.05.21
Вопрос знатокам физики.


15-1145948611
OlegP
2006-04-25 11:03
2006.05.21
Леди анд лжентельмены, это надо отметить!


2-1146842641
ANB
2006-05-05 19:24
2006.05.21
Как из OLE объекта вытащить имена его методов ?


3-1143189367
Emik
2006-03-24 11:36
2006.05.21
InterBase+SQL