7

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

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

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

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

请帮忙

4

4 回答 4

27

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

您可以使用工作表索引设置活动工作表(工作表从 0 开始索引);

$objPHPExcel->setActiveSheetIndex(2);

或按名称

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

使用 createSheet() 或 addSheet() 方法添加新工作表将自动将该新工作表设置为活动工作表。默认情况下,任何新工作表的名称都将包含单词“Worksheet”和一个数字,直到您使用 setTitle() 对其进行更改。

于 2013-08-16T11:37:23.133 回答
4

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

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

然后像这样调用该函数:

$phpExcel->setActiveSheet(0);
于 2013-12-26T09:11:55.727 回答
0

你不应该需要ByName. 试试吧setActiveSheetIndex(2);

于 2013-08-16T11:14:10.283 回答
0

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

$replace = '#activeTab="\d"#i';
$with = 'activeTab="0"';
$newxmlfile=preg_replace($replace,$with,$newxmlfile); // force activetab to sheet 1
于 2019-01-23T14:34:14.417 回答