![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сводная таблица(Excel) [Delphi]
beg © (2005-06-22 23:50:00)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 12:35:00) [1]Все же попробуй
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);
beg (2005-06-23 09:07:00) [2]Да нет там, все параметры типа OleVariant
YurikGL (2005-06-23 07:21:00) [3]
> Could not variant of type(error) into type(integer)
Если правильно понял, то где-то требуется параметр типа integer, а ты суешь другой тип.
Кинь на форму TExcelWorkSheet, набери
TExcelWorkShee.PivotTableWizard и в сплывающей подсказке посмотри типы параметров.