Можно ли скрыть лист Excel с помощью phpexcel?


Я создаю шаблон excel и использую 4 листа, где 3 просто используются для хранения данных из массива. Эти данные используются в списке проверки данных, поэтому я добавил защиту к 3 листам, которые я использую только для хранения данных, но я хотел бы знать, можно ли их скрыть, чтобы пользователь при загрузке шаблона не мог видеть эти листы, о существовании которых ему не нужно знать.

Возможно ли это?

Author: Periback, 2012-08-21

1 answers

$objPHPExcel->getSheetByName('Worksheet 1')
    ->setSheetState(PHPExcel_Worksheet::SHEETSTATE_HIDDEN);

Или

$objPHPExcel->getSheetByName('Worksheet 1')
    ->setSheetState(PHPExcel_Worksheet::SHEETSTATE_VERYHIDDEN);

РЕДАКТИРОВАТЬ

Вы можете использовать формат/Лист/Скрыть Excel, чтобы скрыть весь рабочий лист. Это устанавливает для свойства visible листа значение xlSheetHidden. Но если вы не защитите структуру рабочей книги паролем, любой может выбрать Формат/Лист/Отобразить, чтобы увидеть скрытый лист.

Если вы используете Excel 97 или более поздней версии, то вы можете "очень скрыть" лист:

  • Нажмите Alt-F11, чтобы отобразить редактор Visual Basic
  • в окне проекта, дважды щелкните объекты Microsoft Excel и выберите лист, который нужно скрыть.
  • Нажмите клавишу F4, чтобы отобразить поле свойств
  • Установите для свойства Visible листа значение xlSheetVeryHidden.

Теперь лист больше не доступен через Формат/Лист/Показать

Это то, что PHPExcel делает гораздо проще, когда вы устанавливаете состояние листа в значение VERYHIDDEN

 10
Author: Mark Baker, 2012-08-21 16:09:11