FPSpreadsheet авто-фильтр и закрепление

Вопросы использования сторонних (не входящих в состав FPC и Lazarus) утилит и библиотек.

Модератор: Модераторы

Ответить
Аватара пользователя
jonyrh
незнакомец
Сообщения: 6
Зарегистрирован: 10.09.2020 11:29:24

FPSpreadsheet авто-фильтр и закрепление

Сообщение jonyrh »

Уважаемые гуру, подскажите, пожалуйста, возможно ли в FPSpreadsheet добавить авто-фильтр и есть ли закрепление столбцов/строк?
Перерыл демо, доку, в исходниках искал, но не нашел... Возможно авто-фильтр задается как то через запись формулы или я ошибаюсь?
Dakor
новенький
Сообщения: 16
Зарегистрирован: 14.04.2018 23:01:01

Re: FPSpreadsheet авто-фильтр и закрепление

Сообщение Dakor »

Закрепление

Код: Выделить всё

TsWorksheet.LeftPaneWidth:= 1; // 1- кол-во столбцов
TsWorksheet.TopPaneHeight:= 2; // 2 - кол-во строк
Аватара пользователя
jonyrh
незнакомец
Сообщения: 6
Зарегистрирован: 10.09.2020 11:29:24

Re: FPSpreadsheet авто-фильтр и закрепление

Сообщение jonyrh »

Dakor писал(а):Закрепление

Код: Выделить всё

TsWorksheet.LeftPaneWidth:= 1; // 1- кол-во столбцов
TsWorksheet.TopPaneHeight:= 2; // 2 - кол-во строк

Отлично! Спасибо! Осталось разобраться с формулой для получения авто-фильтра, помню, раньше я пробовал прочитать формулу из ячейки с фильтром, и она была, осталось проверить этот вариант...

Добавлено спустя 23 часа 24 минуты 39 секунд:
Увы, но закрепление тоже не работает, в классе LeftPaneWidth и TopPaneHeight только описаны, ни какой работы с ними нет... они просто есть, печально... :(
Dakor
новенький
Сообщения: 16
Зарегистрирован: 14.04.2018 23:01:01

Re: FPSpreadsheet авто-фильтр и закрепление

Сообщение Dakor »

Прошу прощения, забыл про опции:

Код: Выделить всё

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;
Аватара пользователя
jonyrh
незнакомец
Сообщения: 6
Зарегистрирован: 10.09.2020 11:29:24

Re: FPSpreadsheet авто-фильтр и закрепление

Сообщение jonyrh »

Еще раз спасибо! Все работает! :D
Ответить