我之前使用过Laravel-Excel的旧版本来导出数据,以前我可以使用$sheets->setActiveSheetIndex(0)->download('xls');
(查看 PHPSpreadsheet 文档) 来设置用户打开文件时激活的标签页。
在3.0版本中,我不知道该放在哪里。如果我不尝试设置活动工作表,文件会下载,因此其余代码是有效的。我尝试将其添加到导出控制器中,如下所示,然后它会抛出一个错误: Call to undefined method App\Exports\TechMatrixExport::setActiveSheetIndex()
。在下面的示例中,我希望 TechnologiesSheet 在用户打开文件时成为活动工作表。
namespace App\Exports;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
class TechMatrixExport implements WithMultipleSheets
{
use Exportable;
public function sheets(): array
{
$sheets = [];
$sheets[] = new TechnologiesSheet();
$sheets[] = new NotesSheet();
$sheets[] = new InputsSheet();
$sheets[] = new ReferencesSheet();
return $sheets;
}
}
控制器:
public function __construct(\Maatwebsite\Excel\Excel $excel)
{
$this->excel = $excel;
}
public function exportAll()
{
return (new TechMatrixExport)->setActiveSheetIndex(0)->download('tech_matrix.xlsx');
}
< p > ->setActiveSheetIndex(0);
属于哪个部分?< /p >
Spreadsheet
的实例?这就是函数所在的地方:https://github.com/PHPOffice/PhpSpreadsheet/blob/master/src/PhpSpreadsheet/Spreadsheet.php#L809 - jmadsen