Уважаемые гуру, подскажите, пожалуйста, возможно ли в FPSpreadsheet добавить авто-фильтр и есть ли закрепление столбцов/строк?
Перерыл демо, доку, в исходниках искал, но не нашел... Возможно авто-фильтр задается как то через запись формулы или я ошибаюсь?
FPSpreadsheet авто-фильтр и закрепление
Модератор: Модераторы
Re: FPSpreadsheet авто-фильтр и закрепление
Закрепление
Код: Выделить всё
TsWorksheet.LeftPaneWidth:= 1; // 1- кол-во столбцов
TsWorksheet.TopPaneHeight:= 2; // 2 - кол-во строк
Re: FPSpreadsheet авто-фильтр и закрепление
Dakor писал(а):ЗакреплениеКод: Выделить всё
TsWorksheet.LeftPaneWidth:= 1; // 1- кол-во столбцов
TsWorksheet.TopPaneHeight:= 2; // 2 - кол-во строк
Отлично! Спасибо! Осталось разобраться с формулой для получения авто-фильтра, помню, раньше я пробовал прочитать формулу из ячейки с фильтром, и она была, осталось проверить этот вариант...
Добавлено спустя 23 часа 24 минуты 39 секунд:
Увы, но закрепление тоже не работает, в классе LeftPaneWidth и TopPaneHeight только описаны, ни какой работы с ними нет... они просто есть, печально...
Re: FPSpreadsheet авто-фильтр и закрепление
Прошу прощения, забыл про опции:
Вот рабочий пример:
Код: Выделить всё
TsWorksheet.Options:= TsWorksheet.Options + [soHasFrozenPanes];
Вот рабочий пример:
Код: Выделить всё
procedure Test;
var
WBook: TsWorkbook;
WSheet: TsWorksheet;
i,j: Cardinal;
begin
WBook:= TsWorkbook.Create;
try
WSheet:= WBook.AddWorksheet('Лист1');
for i:= 0 to 50 do
for j:= 0 to 50 do
WSheet.WriteText(i,j, 'R' + IntToStr(i+1) + '; C' + IntToStr(j+1));
WSheet.Options:= WSheet.Options + [soHasFrozenPanes];
WSheet.LeftPaneWidth:= 2;
WSheet.TopPaneHeight:= 3;
WBook.WriteToFile('test.xlsx', sfOOXML, True);
finally
FreeAndNil(WBook);
end;
end;
Re: FPSpreadsheet авто-фильтр и закрепление
Еще раз спасибо! Все работает! 
