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

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

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

1 ответов


$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.

теперь лист больше не доступен через Format/Sheet / Unhide

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