Я борюсь с Laravel-Excel (Laravel Пакет PHPExcel).
Я не могу изменить файл. Мой файл имеет одну рабочую книгу (называется шаблон). Я хочу загрузить документ, изменить его и позволить пользователю загрузить его:
Excel::selectSheets('template') -> load($source, function($file)
{
}) -> download('xls');
Код выше работает до сих пор. Но я не понимаю, как заполнить клетки. Я не хочу экспортировать красноречивую модель напрямую, мне нужно следовать определенной структуре. Файл Excel не был создан мной, мне просто нужно заполнить его данными.
Так, как я могу, например, заполнить ячейку A2 именем текущего пользователя?
Я ищу что-то вроде
Excel::cell('A2') -> content = $user -> name;
Это всего лишь пример того, чего я хочу достичь, это не рабочий код!
Спасибо,
Luma
Laravel-Excel работает на PHPExcel, и вы можете запускать собственные методы PHPExcel для объектов, предоставляемых Laravel-Excel.
Из документов, чтобы получить ячейку: http://www.maatwebsite.nl/laravel-excel/docs/export#cells
\Excel::create('Document', function($excel) {
$excel->sheet('Sheet', function($sheet) {
$sheet->cell('A2', function($cell) {
$cell->setValue('this is the cell value.');
});
});
})->download('xls');
И вот скриншот экземпляра $ cell, показывающий, что еще можно вызвать на нем:
Я использую это таким образом:
Excel::load('template_orden_compra.xls', function($doc){
$sheet = $doc->getActiveSheet();
$sheet->setCellValue('A2', $user->name);
})
->store('xls', storage_path('Excel'));
Вы можете использовать встроенные функции PHP Excel:
Excel::load('file.xls', function($excel)
{
$excel->getActiveSheet()->setCellValue('A1', 'cell value here');
}) -> download('xls');
Вы можете использовать следующие для нескольких листов.
$somevalue = array('abc', 'xyz');
Excel::load('file.xlsx', function($file) use($somevalue) {
$file->sheet( 'sheetName', function ($sheet) use($somevalue){
$sheet->setCellValue('A1', $somevalue);
});
})->export('xlsx');