In meinem Projekt versuche ich, eine Excel-Datei mit mehreren Blättern mit PHPExcel
zu exportieren. Da muss ich einige Felder in allen Blättern sperren.PHPExcel macht den Schutz aktiv auf allen Blättern
Aber das folgende Programm funktioniert nur auf dem ersten Blatt. Wie kann ich es auf allen Blättern arbeiten lassen?
function export() {
if ($this -> session -> userdata('username') && $this -> session -> userdata('role') != 200) {
if (!empty($_POST['btnExport'])) {
$exportRecord = $this -> expmodel -> getExportData();
$this -> load -> library('excel');
$this -> load -> library('zip');
$sheetno = 0;
$loopcount = 0;
$newsheet = $this -> excel -> createSheet($sheetno);
$this -> excel -> setActiveSheetIndex(0);
$rowCount = 1;
foreach ($exportRecord as $export) {
foreach ($export as $val) {
if (!isset($val))
$value = NULL;
elseif ($val != "")
$value = strip_tags($val);
else
$value = "";
$workObj = new PHPExcel_Worksheet();
$workObj -> protectCells($column . $rowCount, 'PHP');
$newsheet -> setCellValue($column . $rowCount, $value);
$column++;
}
$rowCount += 1;
if (isset($exportRecord[$loopcount + 1]['tra_cp_name'])) {
if ($exportRecord[$loopcount + 1]['tra_cp_name'] != $exportRecord[$loopcount]['tra_cp_name']) {
$sheetno += 1;
$newone += 1;
$rowCount = 1;
}
}
if ($newone > 0) {
$newsheet = $this -> excel -> createSheet($sheetno);
$newSheet = 1;
}
$loopcount += 1;
}
$filename = 'export' . $filecount . '.xls';
$writeObj = PHPExcel_IOFactory::createWriter($this -> excel, 'Excel5');
$filecount += 1;
$filearray[] = $filename;
$writeObj -> save('./excel/' . $filename);
$downloadedFileCount = sizeof($filearray);
for ($i = 0; $i < $downloadedFileCount; $i++) {
$this -> zip -> read_file('./excel/' . $filearray[$i]);
}
$this -> zip -> download('excursion_files.zip');
}
}
else {
$this -> session -> sess_destroy();
redirect('backoffice', 'refresh');
}
}
Jede mögliche Hilfe geschätzt werden kann.
kein Glück. Nach dem Hinzufügen von "$ newsheet" funktioniert es überhaupt nicht – Arun