tacoberu/nette-response-spreadsheet

Spreadsheet Nette responses. Support csv, msxml, xsl, xslt, ods, slk, gnumeric, html.

v1.0.0 2016-12-22 05:27 UTC

This package is auto-updated.

Last update: 2024-04-17 22:20:12 UTC


README

Spreadsheet Nette responses.

Use:

use Taco\Nette\Application\Responses;

class SomePresenter extends BasePresenter
{
    function actionDefault()
    {
        $data = [
            [ 'George', 'age' => 15, 'grade' => 2, ],
            [ 'Jack', 'age' => 17, 'grade' => 4, ],
            [ 'name' => 'Mary', 'age' => 17, 'grade' => 1, ],
        ];

        $response = new Responses\SpreadsheetResponse($data);
        $this->sendResponse( $response );
    }
}

With headers

use Taco\Nette\Application\Responses;

class SomePresenter extends BasePresenter
{
    function actionDefault()
    {
        $headers = [ 'Name', 'Age', 'Grade'];
        $data = [
            [ 'George', 15, 2, ],
            [ 'Jack', 17, 4, ],
            [ 'Mary', 17, 1, ],
        ];

        $response = new Responses\SpreadsheetResponse($data, $headers);
        $this->sendResponse( $response );
    }
}

Individual settings example:

use Taco\Nette\Application\Responses;

class SomePresenter extends BasePresenter
{
    function actionDefault()
    {
        $headers = [ 'Name', 'Age', 'Grade'];
        $data = [
            [ 'George', 15, 2, ],
            [ 'Jack', 17, 4, ],
            [ 'Mary', 17, 1, ],
        ];

        $response = new Responses\SpreadsheetResponse($data, $headers);
        $response
            ->setFilename('export')
            ->setTitle('Export');
        $this->sendResponse( $response );
    }
}

Multiple sheets example:

use Taco\Nette\Application\Responses;

class SomePresenter extends BasePresenter
{
    function actionDefault()
    {
        $headers1 = [ 'Name', 'Age', 'Grade'];
        $data1 = [
            [ 'George', 15, 2, ],
            [ 'Jack', 17, 4, ],
            [ 'Mary', 17, 1, ],
        ];

        $headers2 = [ 'City', 'Population'];
        $data2 = [
            [ 'Prague', 1.257, ],
            [ 'Paris', 2.211, ],
            [ 'London', 8.308, ],
        ];

        $response = new Responses\SpreadsheetResponse($data1, $headers1);
        $response
            ->setFilename('export')
            ->setTitle('Export');
            ->addSheet($data2, $headers2);
        $this->sendResponse( $response );
    }
}