PHP code example of wpdev / phpspreadsheet-odata

1. Go to this page and download the library: Download wpdev/phpspreadsheet-odata library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

wpdev / phpspreadsheet-odata example snippets


use GuzzleHttp\Psr7\ServerRequest;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use WPDev\PhpSpreadsheetOData\OData\ODataServer;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->fromArray([
    ['Id', 'Name', 'Age'],
    [1, 'Alice', 30],
    [2, 'Bob', 25],
]);

$server = new ODataServer($spreadsheet, 'http://localhost:8080/odata');

// Optional authentication
$server->useBearer(fn (string $token): bool => $token === 'secret');
// $server->useApiKey('X-API-Key', fn (string $key): bool => $key === 'my-key');
// $server->useBasicAuth(fn (string $user, string $pass): bool => $user === 'admin' && $pass === 'pass');

$request = ServerRequest::fromGlobals();
$response = $server->handle($request);

http_response_code($response->getStatusCode());
foreach ($response->getHeaders() as $name => $values) {
    foreach ($values as $value) {
        header(sprintf('%s: %s', $name, $value), false);
    }
}
echo (string) $response->getBody();

use WPDev\PhpSpreadsheetOData\Contracts\FeedResolverInterface;
use WPDev\PhpSpreadsheetOData\Feed\InMemoryFeedResolver;
use WPDev\PhpSpreadsheetOData\OData\ODataServer;

$resolver = new InMemoryFeedResolver([
    'tenant-a' => $spreadsheetA,
    'tenant-b' => $spreadsheetB,
]);

$server = new ODataServer($resolver, 'http://localhost:8080/odata');

use WPDev\PhpSpreadsheetOData\Feed\PdoFeedResolver;

PdoFeedResolver::createTable($pdo);

$resolver = new PdoFeedResolver(
    $pdo,
    'odata_feeds',
    fn (string $sourceRef): ?Spreadsheet => loadSpreadsheetFromStorage($sourceRef),
);

$server = new ODataServer($resolver, 'http://localhost:8080/odata');

$server->useBearer(fn ($token) => $token === 'secret');
$server->useApiKey('X-API-Key', fn ($key) => $key === 'my-key');
$server->useBasicAuth(fn ($user, $pass) => $user === 'admin' && $pass === 'pass');