2014-02-07 12 views
7

Wie kann ich ein Passwort geschützt Excel-Blatt mit PHPExcel schaffen, weiß ich, wie Excel-Blatt zu schützendie Datei PHPExcel mit Excel schützen

$G=$objPHPExcel->setActiveSheetIndex(0); 
$G->getProtection()->setSheet(true); 

verwenden, aber ich bin keine Verbindung, wie immer das Passwort für die Bearbeitung Schutz einstellen Nur bedeutet, Benutzer kann die Datei ohne Passwort öffnen, aber nicht den Schutz von Blatt entfernen, die leicht von jedem aus dem Menü Daten durchgeführt werden kann. Vorschläge sind willkommen.

Antwort

13

Für Excel2007 Verfasser:

Set Arbeitsmappe Sicherheit:

$objPHPExcel->getSecurity()->setLockWindows(true); 
$objPHPExcel->getSecurity()->setLockStructure(true); 

$objPHPExcel->getSecurity()->setWorkbookPassword('secret'); 

Set Arbeitsblatt Sicherheit:

$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true); 

$objPHPExcel->getActiveSheet()->getProtection()->setPassword('password'); 
+0

Also einfach ohne Passwort in php offen zu vermeiden alle Schutz, um zu überprüfen, ** nur ** auf Excel2007 funktioniert? – shaneparsons

+0

Funktioniert überhaupt nicht, die XLSX-Datei kann immer noch ohne Passwort geöffnet werden (PHPExcel 1.8) –

+1

@MuhammadAbrar - Dies funktioniert so, wie es funktionieren soll .... dies schützt die Arbeitsmappe nicht davor, geöffnet zu werden; Es schützt die Elemente des Arbeitsblatts davor, verändert zu werden .... verstehen Sie, worüber Sie sich beschweren, bevor Sie sich beschweren –

0

Zu diesem Zeitpunkt unterstützt PHPExcel das Schützen von Blättern mit einem Kennwort nicht. nur

+0

dann, wie Passwort-Datei in Excel zu setzen –

0

diese Optionen Versuchen Sie, die nicht in der Dokumentation erwähnt.

$objPHPExcel->getActiveSheet()->getProtection()->setSelectLockedCells(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setSelectUnlockedCells(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setFormatRows(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setInsertColumns(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setInsertHyperlinks(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setDeleteColumns(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setDeleteRows(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setAutofilter(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setObjects(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setScenarios(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); 
$objPHPExcel->getActiveSheet()->getProtection()->setPassword('password');