最新バージョン、Laravel 5.4
それがバグなのか、正しく理解できないのか、それともまだやるべきことがあるのかはわかりません。
maatwebsiteにある基本的な方法と高度な方法を使用してExcelのドキュメントを作成することができました。
私が使用した方法は
$ sheet-> protected()、そしてそれは高度なメソッドです。
この方法でシート全体を保護することができましたが、保護する必要があるのはある範囲のセルだけです。
私はワークシートメソッドを見ました:
$ sheet-> protectedCells(A1); しかし、これは私にはうまくいきません。 これを達成するために私が使用できる方法を手伝ってください。 ありがとう..
こんにちは@GreenWhiteDev
次の場所を検索して、基になる依存関係を確認しました。
https://github.com/PHPOffice/PHPExcel/search?utf8=%E2%9C%93&q=protectCells&type=
結果に次のように表示されます。
https://github.com/PHPOffice/PHPExcel/blob/1c8c2379ccf5ab9dd7cb46be965821d22173bcf4/Examples/05featuredemo.inc.php#L136 -L139
それはおそらくあなたを動かすのに十分だと思います。
このようなもの:
$sheet->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection!
$sheet->getActiveSheet()->protectCells('A3:E13', 'PHPExcel');
編集:この参照を追加:
また見なさい
/**
* Set protection on a cell range
*
* <strong i="22">@param</strong> string $pRange Cell (e.g. A1) or cell range (e.g. A1:E1)
* <strong i="23">@param</strong> string $pPassword Password to unlock the protection
* <strong i="24">@param</strong> boolean $pAlreadyHashed If the password has already been hashed, set this to true
* <strong i="25">@throws</strong> PHPExcel_Exception
* <strong i="26">@return</strong> PHPExcel_Worksheet
*/
public function protectCells($pRange = 'A1', $pPassword = '', $pAlreadyHashed = false)
そのメソッドで遊ぶための3つのパラメーター!
どうやって乗るのか教えてください。
最後に、私はそれを行う正しい方法を見つけました。
$ objPHPExcel =新しいPHPExcel;
$ objSheet = $ objPHPExcel-> getActiveSheet();
//セル範囲を保護します
$ objSheet-> protectedCells( 'A1:B1'、 'PHP');
//セル範囲を保護しない
$ objSheet-> getStyle( 'A2:B2')-> getProtection()
-> setLocked(PHPExcel_Style_Protection :: PROTECTION_UNPROTECTED);
//ワークシートシートを保護します
$ objSheet-> getProtection()-> setSheet(true);
これは完全に機能しています!
出典: https :
Laravelでは以下を使用します:
//パスワードで保護します
$ sheet-> protected( 'password');
//セル範囲の保護を解除します
$ sheet-> getStyle( 'F2:F1000')-> getProtection()-> setLocked(\ PHPExcel_Style_Protection :: PROTECTION_UNPROTECTED);
//保護ワークシートシート
$ sheet-> getProtection()-> setSheet(true);
@ jorgeald77うわー! それはとてもクールに働きました。
プロジェクトをしばらく一時停止しました。 数日前に始めたばかりです。
その時、セル範囲のセキュリティを実装できませんでした。 私はあなたの解決策を試しました、そしてそれはとてもクールに働きました。 とても感謝しています。
貢献してくれてありがとう。
最も参考になるコメント
最後に、私はそれを行う正しい方法を見つけました。
$ objPHPExcel =新しいPHPExcel;
$ objSheet = $ objPHPExcel-> getActiveSheet();
//セル範囲を保護します
$ objSheet-> protectedCells( 'A1:B1'、 'PHP');
//セル範囲を保護しない
$ objSheet-> getStyle( 'A2:B2')-> getProtection()
-> setLocked(PHPExcel_Style_Protection :: PROTECTION_UNPROTECTED);
//ワークシートシートを保護します
$ objSheet-> getProtection()-> setSheet(true);
これは完全に機能しています!
出典: https :
Laravelでは以下を使用します:
//パスワードで保護します
$ sheet-> protected( 'password');
//セル範囲の保護を解除します
$ sheet-> getStyle( 'F2:F1000')-> getProtection()-> setLocked(\ PHPExcel_Style_Protection :: PROTECTION_UNPROTECTED);
//保護ワークシートシート
$ sheet-> getProtection()-> setSheet(true);