Тупо выкладываю весь кусок создания сводной таблицы. Может не все надо (в плане примера), зато точно будет понятно:
Код:
// ========= Сводная таблица по артикулам =======================
xlPivotCache := xlApp.ActiveWorkbook.PivotCaches.Add(1,STRSUBSTNO('%1!A1:%2%3','Строки', 'G', RowNo));
xlPivotCache.CreatePivotTable('','PivotTable1');
xlWorkSheet2 := xlApp.ActiveSheet();
xlPivotTable := xlWorkSheet2.PivotTables('PivotTable1');
xlWorkSheet2.Name := 'Сводная Артикулы';
// Делаем строки
xlPivotField := xlPivotTable.PivotFields('Код товара');
xlPivotField.Orientation := 1; //xlRowField
xlPivotField.Position := 1;
xlPivotField.Subtotals(1,FALSE);
xlPivotField := xlPivotTable.PivotFields('Наименование');
xlPivotField.Orientation := 1; //xlRowField
xlPivotField.Position := 2;
xlPivotField.Subtotals(1,FALSE);
xlPivotField := xlPivotTable.PivotFields('Артикул');
xlPivotField.Orientation := 1; //xlRowField
xlPivotField.Position := 3;
xlPivotField.Subtotals(1,FALSE);
xlPivotField := xlPivotTable.PivotFields('Кол-во склады');
xlPivotField.Orientation := 1; //xlRowField
xlPivotField.Position := 4;
xlPivotField.Subtotals(1,FALSE);
// Делаем столбцы
xlPivotField := xlPivotTable.PivotFields('Транзит');
xlPivotField.Orientation := 2; //xlColumnField
xlPivotField.Position := 1;
// Делаем странички
xlPivotField := xlPivotTable.PivotFields('Куда');
xlPivotField.Orientation := 3; //xlPageField
xlPivotField.Position := 1;
// Делаем данные
xlPivotField := xlPivotTable.PivotFields('Кол-во транзит');
xlPivotField.Orientation := 4; //xlDataField
xlPivotField.Position := 1;
xlPivotTable.SmallGrid := FALSE;
xlWorkSheet2.Range('A:D').Columns.AutoFit;
xlWorkSheet2.Range('C:D').HorizontalAlignment := 3;