Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

тонкости работы с excel


Страницы:   1 2

Arinyshka ©   (2008-08-05 19:28:00) 

подскажите, можно ли из кода программы организовать стандартную группировку данных при экспорте в excel?
Уточню: я скидываю в Excel данные из вирт. таблицы (заполнена запросом из БД, не суть важно). Первая колонка будет Подгруппа товара, данные в ней повторяются для многих из второй колонки Товар. Нужна автоматическая группировка по первой колонке... Данные отсортированы еще хранимой.
Можно ли это сделать напрямую в коде? спасибо


arinyshka   (2008-08-06 12:00:00) [21]

Не получается...

procedure ExcelFillData(ADataSet: TDataset);
var
  Range, Cell1, Cell2, ArrayData  : Variant;
  BeginCol, BeginRow, i, j : integer;
begin

/// заполняю вирт таблицу
BeginCol:=3;
BeginRow:=9;
RowCount:=ADataSet.RecordCount;
 oleExcelDocument.Worksheets.Item[1].Activate;
 oleExcelDocument.Application.EnableEvents := false;
 ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant);
  for I := 1 to RowCount-1 do
   begin
     for J := 1 to ColCount-1 do
       ArrayData[I, J] :=ADataSet.Fields[j].AsString;
     ADataSet.Next;
   end;

//// скидываю ее в excel

 Cell1 := oleExcelDocument.WorkSheets[1].Cells[BeginRow, BeginCol];
 Cell2 := oleExcelDocument.WorkSheets[1].Cells[BeginRow  + RowCount - 1, BeginCol +ColCount - 1];

 Range := oleExcelDocument.WorkSheets[1].Range[Cell1, Cell2];
 Range.Value := ArrayData;

/// пытаюсь определить столбец, который хочу групировать

  Cell2 := oleExcelDocument.WorkSheets[1].Cells[BeginRow  + RowCount - 1, BeginCol];
  Range := oleExcelDocument.WorkSheets[1].Range[Cell1, Cell2];

  oleExcelDocument.WorkSheets[1].Range.Select;
  oleExcelDocument.WorkSheets[1].Selection.Rows.Group ;

 oleExcelDocument.Visible := true;
end;


Уходит в рантайме с ошибкой "Неверно определено число параметров".
И еще - после закрытия excel он остается висеть в процессах... В приложениях - нет, в списке процессов - есть. Как убить?


Palladin   (2008-08-05 20:19:00) [22]

конечно можно, записать макрос и воспроизвести


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо