• Авторизация


OpenOffice.org Calc сводная таблица (DataPilot) 06-01-2008 11:41 к комментариям - к полной версии - понравилось!


Бился над проблемой, как в OpenOffice сделать сводную таблицу, точнее ее сгенерировать. Ну например из набора данных, экспортированного на лист (см. предыдущие посты)
Делаем значит вот так:
  ServiceManager := CreateOleObject('com.sun.star.ServiceManager');
  vDesktop := ServiceManager.createInstance('com.sun.star.frame.Desktop');
//Открываю шаблон
  Excel := vDesktop.LoadComponentFromURL('file:///'+Shablon,'_blank',0,VarArrayCreate([0, - 1], varVariant));
  Sheets := Excel.GetSheets;
  Sheet:=Sheets.getByIndex(0);
//Закидываем данные из Grid'а на первый лист в координаты X,Y
  Range:= VarArrayCreate([1,Grid.ColCount,1,Grid.RowCount],varVariant);
  For i:=0 to Grid.RowCount-1 do Begin
    For j:=0 to Grid.ColCount-1 do Begin
      Range[j+1,i+1]:=Grid.Cells[j,i];
  Sheet.getCellRangeByName(PointToRange(X,Y)+':'+PointToRange(X+Grid.ColCount-1,Y+Grid.RowCount-1)).setDataArray(Range);
//Далее создаем XDataPilotTablesSupplier. Этот код не отрабатывает
  xDPSupp:=Sheet.CreateInstance('com.sun.star.sheet.XDataPilotTablesSupplier');
//У Sheet нет метода CreateInstance
  xDPTables := xDPSupp.getDataPilotTables();


к сожалению вот на этом и затык. Т.е. данные на лист данных вываливаются как надо, а дальше затык...
Кстати,  естественно, все переменные Variant

Пробовал вместо
xDPSupp:=Sheet.CreateInstance('com.sun.star.sheet.XDataPilotTablesSupplier');
выполнять
xDPSupp:=Excel.CreateInstance('com.sun.star.sheet.XDataPilotTablesSupplier');
возвращается пустой объект
P.S.: задавал этот вопрос на delphikingdom.ru будем отслеживать ответы
см. http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=57767
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник OpenOffice.org Calc сводная таблица (DataPilot) | Бляндер - Ничто на свете не проходит бесследно... | Лента друзей Бляндер / Полная версия Добавить в друзья Страницы: раньше»