Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
1-1144822745
Chaser
2006-04-12 10:19
2006.05.21
Как на время заблокировать ListView?


2-1146682017
Golik
2006-05-03 22:46
2006.05.21
Запуск Программы.


2-1146048231
EdSin
2006-04-26 14:43
2006.05.21
Работа с TTreeView


2-1146221307
Alien1769
2006-04-28 14:48
2006.05.21
Как получить список компов в локальной сети


1-1144745826
MiHoY
2006-04-11 12:57
2006.05.21
поиск дочернего окна




   Наверх