私はExcelテンプレートを生成しており、4枚のシートを使用しています。3枚は配列からのデータを格納するために使用されています。これらのデータはデータ検証リストで使用されているため、データの保存にのみ使用する3枚のシートに保護を追加しましたが、ユーザーがテンプレートをダウンロードするときに、それらを非表示にできるかどうかを知りたいのですが、彼が存在することを知る必要のないこれらのシートを見ることができなくなります。
出来ますか?
$objPHPExcel->getSheetByName('Worksheet 1')
->setSheetState(PHPExcel_Worksheet::SHEETSTATE_HIDDEN);
また
$objPHPExcel->getSheetByName('Worksheet 1')
->setSheetState(PHPExcel_Worksheet::SHEETSTATE_VERYHIDDEN);
編集
Excelのフォーマット/シート/非表示を使用して、ワークシート全体を非表示にすることができます。これにより、ワークシートのvisibleプロパティがxlSheetHiddenに設定されます。ただし、ブック構造をパスワードで保護しない限り、誰でも[フォーマット]/[シート]/[再表示]を選択して、非表示のシートを表示できます。
Excel 97以降を使用している場合は、シートを「非常に非表示」にすることができます。
これで、フォーマット/シート/再表示を介してシートにアクセスできなくなります
これは、SheetStateをVERYHIDDENに設定すると、PHPExcelがより簡単に実行できることです。