2013-08-16 2 views
5

Я использую PHPExcel для генерации xl с использованием php. Я не нагружать XL лист, но создание новых листов с использованиемКак установить активный лист без загрузки файла xlsx?

$phpExcel = new PHPExcel(); 
$phpExcel->getActiveSheet()->setTitle("My Sheet"); 

Я хочу установить активный лист с помощью PHPExcel с помощью $phpExcel->setActiveSheetIndexByName("2");

но им получает ошибку setActiveSheetIndexByName not defined function.

Пожалуйста, помогите

+2

действительно ли это так трудно набрать «отличиться» вместо «ого»? –

ответ

0

Вы не требуется ByName. Попробуйте просто setActiveSheetIndex(2);.

17

Вам необходимо создать/добавить дополнительные листы, чтобы иметь возможность изменять активный лист: с помощью нового PHPExcel() будет создана только книга, содержащая один лист.

Вы можете установить активный лист, используя либо индекс листа (листы индексируются от 0);

$objPHPExcel->setActiveSheetIndex(2); 

или по имени

$objPHPExcel->setActiveSheetIndexByName('My Second Sheet'); 

Добавление нового листа с использованием либо createSheet() или addSheet() методы автоматически установит, что новый лист для активного листа. По умолчанию любому новому листу будет присвоено имя, содержащее слово «Рабочий лист» и номер, пока вы не будете использовать setTitle(), чтобы изменить его.

+0

ya я добавил 3 листа с помощью addSheet(), но я хочу установить 1-й лист на активный. Возможно ли это? – Simone

+0

Конечно, это возможно: индексируется с 0, первый лист будет проиндексирован на 0, поэтому '$ objPHPExcel-> setActiveSheetIndex (0);' –

+0

Альтернативно, '$ objPHPExcel-> setActiveSheetIndexByName ($ objPHPExcel-> getSheetNames() [0 ]); 'если вы используете версию PHP, которая допускает разыменование массива –

4

Добавить ниже функции в файл класса Excel.php:

function setActiveSheet($sheetnumber) { 
     $this->objPHPExcel->setActiveSheetIndex($sheetnumber); 
    } 

затем вызвать эту функцию следующим образом:

$phpExcel->setActiveSheet(0);