Laravel Excel / PHP Excel: импорт, изменение, загрузка

Я борюсь с Laravel-Excel (Laravel Пакет PHPExcel).

Я не могу изменить файл. Мой файл имеет одну рабочую книгу (называется шаблон). Я хочу загрузить документ, изменить его и позволить пользователю загрузить его:

Excel::selectSheets('template') -> load($source, function($file)
{

}) -> download('xls');

Код выше работает до сих пор. Но я не понимаю, как заполнить клетки. Я не хочу экспортировать красноречивую модель напрямую, мне нужно следовать определенной структуре. Файл Excel не был создан мной, мне просто нужно заполнить его данными.

Так, как я могу, например, заполнить ячейку A2 именем текущего пользователя?

Я ищу что-то вроде

Excel::cell('A2') -> content = $user -> name;

Это всего лишь пример того, чего я хочу достичь, это не рабочий код!

Спасибо,
Luma

3

Решение

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, показывающий, что еще можно вызвать на нем:

Кинт-дамп экземпляра $ cell

3

Другие решения

Я использую это таким образом:

Excel::load('template_orden_compra.xls', function($doc){
$sheet = $doc->getActiveSheet();
$sheet->setCellValue('A2', $user->name);
})
->store('xls', storage_path('Excel'));
1

Вы можете использовать встроенные функции PHP Excel:

Excel::load('file.xls', function($excel)
{
$excel->getActiveSheet()->setCellValue('A1', 'cell value here');
}) -> download('xls');
0

Вы можете использовать следующие для нескольких листов.

$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');
0
По вопросам рекламы [email protected]