8

私はExcelテンプレートを生成しており、4枚のシートを使用しています。3枚は配列からのデータを格納するために使用されています。これらのデータはデータ検証リストで使用されているため、データの保存にのみ使用する3枚のシートに保護を追加しましたが、ユーザーがテンプレートをダウンロードするときに、それらを非表示にできるかどうかを知りたいのですが、彼が存在することを知る必要のないこれらのシートを見ることができなくなります。

出来ますか?

4

1 に答える 1

12
$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を押して、VisualBasicEditorを表示します
  • [プロジェクト]ウィンドウで、[Microsoft Excelオブジェクト]をダブルクリックし、非表示にするシートを選択します。
  • F4を押して、プロパティボックスを表示します
  • シートのVisibleプロパティをxlSheetVeryHiddenに設定します。

これで、フォーマット/シート/再表示を介してシートにアクセスできなくなります

これは、SheetStateをVERYHIDDENに設定すると、PHPExcelがより簡単に実行できることです。

于 2012-08-21T16:02:39.267 に答える