如何在不加载xlsx文件的情况下设置活动图纸


How to set active sheet without loading an xlsx file?

我使用PHPExcel使用php生成xl。我不是加载xl表,而是使用创建新表

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

我想使用$phpExcel->setActiveSheetIndexByName("2"); 使用phpExcel设置活动工作表

但是我得到一个错误setActiveSheetIndexByName not defined function.

请帮助

当然,您需要创建/添加额外的工作表才能更改活动工作表:使用new PHPExcel()只会创建包含单个工作表的工作簿。

可以使用图纸索引(图纸从0开始索引)设置活动图纸;

$objPHPExcel->setActiveSheetIndex(2);

或按名称

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

使用createSheet()或addSheet()方法添加新工作表将自动将该新工作表设置为活动工作表。默认情况下,任何新的工作表都会被赋予一个由单词"worksheet"和一个数字组成的名称,直到您使用setTitle()对其进行更改为止。

将以下函数添加到Excel.php类文件中:

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

然后调用这样的函数:

$phpExcel->setActiveSheet(0);

您不应该需要ByName。只尝试setActiveSheetIndex(2);

如果直接操作workbook.xml 中的xml

$replace = '#activeTab="'d"#i';
$with = 'activeTab="0"';
$newxmlfile=preg_replace($replace,$with,$newxmlfile); // force activetab to sheet 1
相关文章: