Neueste Version, Laravel 5.4
Ich weiß nicht, ob es ein Fehler ist, ich es nicht richtig mache oder ich noch etwas tun muss.
Ich konnte die grundlegenden und fortgeschrittenen Methoden der maatwebsite für die Excel-Dokumentation verwenden.
Die von mir verwendeten Methoden waren
$sheet->protect() , und seine erweiterte Methode.
Diese Methoden konnten das gesamte Blatt schützen, aber ich muss nur einen Bereich von Zellen schützen.
Ich habe eine Arbeitsblattmethode gesehen:
$sheet->protectCells(A1); aber das funktioniert bei mir nicht. Bitte helfen Sie mit einer Methode, die ich verwenden könnte, um dies zu erreichen. Vielen Dank..
Hallo @GreenWhiteDev
Ich habe die zugrunde liegende Abhängigkeit mit einer Suche unter überprüft:
https://github.com/PHPOffice/PHPExcel/search?utf8=%E2%9C%93&q=protectCells&type=
In den Ergebnissen sehen Sie:
https://github.com/PHPOffice/PHPExcel/blob/1c8c2379ccf5ab9dd7cb46be965821d22173bcf4/Examples/05featuredemo.inc.php#L136 -L139
Das ist wahrscheinlich genug, um dich zum Laufen zu bringen, denke ich.
Etwas wie das:
$sheet->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection!
$sheet->getActiveSheet()->protectCells('A3:E13', 'PHPExcel');
Bearbeiten: Diese Referenz hinzufügen:
Siehe auch
/**
* 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)
Drei Parameter, mit denen Sie bei dieser Methode spielen können!
Lass mich wissen, wie es dir geht?
Endlich habe ich den richtigen Weg gefunden..
$objPHPExcel = neues PHPExcel;
$objSheet = $objPHPExcel->getActiveSheet();
//SCHÜTZEN SIE DEN ZELLENBEREICH
$objSheet->protectCells('A1:B1', 'PHP');
// DEN ZELLENBEREICH UNSCHÜTZEN
$objSheet->getStyle('A2:B2')->getProtection()
->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
// ARBEITSBLATT SCHÜTZEN
$objSheet->getProtection()->setSheet(true);
Das funktioniert einwandfrei!
QUELLE: https://stackoverflow.com/questions/17046207/phpexcel-lock-particular-cell
In Laravel verwende ich:
// SCHÜTZEN mit Ihrem Passwort
$sheet->protect('passwort');
// ENTSCHÜTZEN des Zellbereichs
$sheet->getStyle('F2:F1000')->getProtection()->setLocked(\PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
// Arbeitsblatt PROTECT
$sheet->getProtection()->setSheet(true);
@jorgeald77 Wow! Das hat super funktioniert..
Ich habe das Projekt für eine Weile pausiert. Ich habe erst vor ein paar Tagen angefangen.
Ich war damals nicht in der Lage, die Sicherheit für den Mobilfunkbereich zu implementieren. Ich habe deine Lösung ausprobiert und es hat so cool funktioniert. Ich schätze das so sehr.
Danke an alle für den Beitrag..
Hilfreichster Kommentar
Endlich habe ich den richtigen Weg gefunden..
$objPHPExcel = neues PHPExcel;
$objSheet = $objPHPExcel->getActiveSheet();
//SCHÜTZEN SIE DEN ZELLENBEREICH
$objSheet->protectCells('A1:B1', 'PHP');
// DEN ZELLENBEREICH UNSCHÜTZEN
$objSheet->getStyle('A2:B2')->getProtection()
->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
// ARBEITSBLATT SCHÜTZEN
$objSheet->getProtection()->setSheet(true);
Das funktioniert einwandfrei!
QUELLE: https://stackoverflow.com/questions/17046207/phpexcel-lock-particular-cell
In Laravel verwende ich:
// SCHÜTZEN mit Ihrem Passwort
$sheet->protect('passwort');
// ENTSCHÜTZEN des Zellbereichs
$sheet->getStyle('F2:F1000')->getProtection()->setLocked(\PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
// Arbeitsblatt PROTECT
$sheet->getProtection()->setSheet(true);